<script>on mouseUpanswer "List what :" with "Handler" or "Variables" or "Xternals"put it into ListWhatanswer "List all :" with "Annuler" or "False" or "True"if it is "Annuler" then exit mouseUpput it into ListAllanswer "List numbers :" with "Annuler" or "False" or "True"if it is "Annuler" then exit mouseUpput it into ListNbset cursor to watchput XRef(script of this stack,ListWhat,ListAll,ListNb) into cd fld 2show cd fld 2end mouseUp</script>
</part>
<part>
<id>3</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>69</left>
<top>68</top>
<right>434</right>
<bottom>252</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script>on mouseUphide meput empty into meend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> XRef 1.3 by Frédéric RINALDIDESCRIPTION------------ XRef is a tool for cross-referencing handlers, variables and externals in an HC script.SYNTAX-------- XRef(<script>[,<H[andlers]|V[ariables]|X[ternals]> [,<ListAll>[,<ListNb>]]])PARAMETERS------------ <script> is the script text to explore <H[andlers]|V[ariables]|X[ternals]> defines the desired X-Ref mode: by handlers, by variables or by externals. <ListAll> is a boolean. When TRUE, all subitems are listed for each found entry. Default is FALSE. <ListNb> is a boolean, used only if <ListAll> = TRUE. When TRUE, all line numbers are listed along with each subitem. Default is FALSE. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns a list of found entries, depending of the choosen X-Ref mode. Each entry is followed by its type, which can be [HN] (handler), [LV] (local variable, [GV] (global variable), [XC] (external command) or [XF] (external function). Mode=H, ListAll=FALSE, ListNb=FALSE <handler 1> … <handler N> Mode=H, ListAll=TRUE, ListNb=FALSE <handler 1> <var/xter 1>[…,<var/xter N>] … <handler N> <var/xter 1>[…,<var/xter N>] Mode=H, ListAll=TRUE, ListNb=TRUE <handler 1> <var/xter 1>: <line 1>[,<line N>] … <var/xter N>: <line 1>[,<line N>] … <handler N> <var/xter 1>: <line 1>[,<line N>] … <var/xter N>: <line 1>[,<line N>] Mode=V, ListAll=FALSE, ListNb=FALSE <variable 1> … <variable N> Mode=V, ListAll=TRUE, ListNb=FALSE <variable 1> <handler 1>[…,<handler N>] … <variable N> <handler 1>[…,<handler N>] Mode=V, ListAll=TRUE, ListNb=TRUE <variable 1> <handler 1>: <line 1>[,<line N>] … <handler N>: <line 1>[,<line N>] … <variable N> <handler 1>: <line 1>[,<line N>] … <handler N>: <line 1>[,<line N>] Mode=X, ListAll=FALSE, ListNb=FALSE <external 1> … <external N> Mode=X, ListAll=TRUE, ListNb=FALSE <external 1> <handler 1>[…,<handler N>] … <external N> <handler 1>[…,<handler N>] Mode=X, ListAll=TRUE, ListNb=TRUE <external 1> <handler 1>: <line 1>[,<line N>] … <handler N>: <line 1>[,<line N>] … <external N> <handler 1>: <line 1>[,<line N>] … <handler N>: <line 1>[,<line N>]ERRORS-------If an error occurs, XRef can return : "Error : Out of memory" "Error : Missing or empty script parameter" "Error : Second param must begin with [H,V,X]" "Error : Third param must be boolean" "Error : Fourth param must be boolean" "Error : Couldn't get WTLK resource"HISTORY--------1.3 : 07/20/92• Fixed WTLK access for HC 1.2• Fixed empty string result1.2 : 03/23/92• First release</text>
</content>
<name></name>
<script></script>
</card>
card_45655.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "New window title :"WindName itend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> WindName 1.1 by Frédéric RINALDIDESCRIPTION------------ WindName XCMD is a XCMD allowing to change the title of HyperCard's window.SYNTAX-------- WindName <title string>PARAMETERS------------ Title string is the new name to use for the window. </text>
<script>on mouseUpask "Resource text :" with "This is a sample text"if it is empty then exit mouseUpput it into Textask "Resource type :" with "TEXT"if it is empty then exit mouseUpput it into Typeanswer "Add resource in :" with "Cancel" or "Other file" or¬"This stack"if it is "Cancel" then exit mouseUpif it is "Other file"thenif last word of the version ≥ 2.0then answer file "Destination file :"else ask "Destination file :"if it is empty then exit mouseUpTextRes Text,Type,itelse TextRes Text,Typeif first word of the Result is "Error"then answer the resultelse answer "Created resource : " & the Resultend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> TextRes 1.3 by Frédéric RINALDIDESCRIPTION------------ TextRes allows to create any kind of text resource (STR, STR#, TEXT, etc) in a file.SYNTAX------- TextRes <text>,<res type>[,<res ID>][,<res name>] [,<fileName>][,<sep.char>]PARAMETERS------------ <text> is the text that will be written as resource in the file. <res type> is a four chars string, case sensitive, giving the resource type. <res ID> is an integer. If not supplied, any free ID will be used. <res name> defines the name of the created resource. <fileName> is the pathname of the destination file. Default is current resource file. <sep.char> is useful only with STR# resource creation, and allows to define the entries separator. Default is return. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- If the supplied file name doesn't exist, it is created by the XCMD. Any previous resource with same ID is simply replaced by the new one in the file. The XCMD returns <ID[,name]> of the new resource in the result.ERRORS-------If an error occurs, TextRes can return : "Error : Missing or empty parameter(s)" "Error : Bad resource type" "Error : Out of memory" "Error : Couldn't create resource" "Error : Not a file" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : AppleShare insufficient privileges"HISTORY--------1.3 : 03/09/92• Write allowed in an already opened resource file1.2 : 03/07/92• Fixed parameters parsing1.1 : 02/23/92• First release</text>
</content>
<name></name>
<script></script>
</card>
card_45258.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpTextoid "Test1","cd fld 1",false,"91,69","red","BigWindoidZoom"testError the ResultTextoid "Test2","This is a sample of wrapping text, you can edit me."¬,"chicago",12,"285,142,385,242","white,blue"testError the ResultTextoid "Test3","Shadow-type window without scrollBars",¬"95,200,259,225","Chicago",12,"shadow"testError the Resultset selectedChunk of window "Test2" to "11,16"end mouseUpon TestError Whatif What ≠ emptythenbeepanswer Whatexit to HyperCardend ifend TestError</script>
</part>
<part>
<id>25</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>108</left>
<top>263</top>
<right>330</right>
<bottom>277</bottom>
</rect>
<style>transparent</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Get/Set of window</name>
<script></script>
</part>
<part>
<id>21</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <true /> </dontWrap>
<dontSearch> <true /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>392</left>
<top>0</top>
<right>512</right>
<bottom>125</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Windows</name>
<script></script>
</part>
<part>
<id>22</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>327</left>
<top>260</top>
<right>387</right>
<bottom>279</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script>on mouseDownget AllWindoids()if it Γëá emptythenget FullHPop(it)if it Γëá emptythenset name of me to item 1 of itshow btn 5show btn 6end ifend ifend mouseDown</script>
</part>
<part>
<id>23</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>372</left>
<top>262</top>
<right>387</right>
<bottom>275</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>31383</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>WindArrow</name>
<script>on mouseDownsend mouseDown to btn 3end mouseDown</script>
</part>
<part>
<id>24</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <true /> </dontWrap>
<dontSearch> <true /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>392</left>
<top>125</top>
<right>512</right>
<bottom>342</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Properties</name>
<script></script>
</part>
<part>
<id>26</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>167</left>
<top>260</top>
<right>251</right>
<bottom>279</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>property</name>
<script>on mouseDownput FullHPop(cd fld "Properties",left of me & ",5") into PopResultif PopResult is emptythen exit mouseDownif item 2 of PopResult is emptythendo "get" && item 1 of PopResult && "of window" && quote & ¬short name of btn id 22 & quoteanswer item 1 of PopResult && "=" && itelseif item 2 of PopResult is "To…"thenask "Set" && item 1 of PopResult && "to :"if the Result = "Cancel" then exit mouseDowndo "set" && item 1 of PopResult && "of window" && quote & ¬short name of btn id 22 & quote && "to" && itelsedo "set" && item 1 of PopResult && "of window" && quote & ¬short name of btn id 22 & quote && "to" && item 2 of PopResultend ifend ifend mouseDown</script>
</part>
<part>
<id>27</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>235</left>
<top>262</top>
<right>250</right>
<bottom>275</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>31383</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>PropArrow</name>
<script>on mouseDownsend mouseDown to btn 5end mouseDown</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text><span class="style1"> </span><span class="style3">Textoid 3.6</span><span class="style1"> </span><span class="style2"> by Frédéric RINALDI</span><span class="style1"> </span><span class="style2"> and the faithfull help of Benoît WIDEMANN for WDEF and CDEF resources</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> Textoid XCMD displays a full-styled text windoid.</span><span class="style4">SYNTAX</span><span class="style1"> Textoid <WName>[,<text>[,<WStyle>][,<color>] [,<X,Y[,Z,T]>] [,<textWrap>][,<FName>] [,<FSize>] [,<FStyle>] [,<FAlign>] ]</span><span class="style4">PARAMETERS</span><span class="style1"> Only first param is needed. Order of params 3 to 10 doesn't matter, since the XCMD is able to recognize them. </span><span class="style3">WName</span><span class="style1"> is a string giving the windoid name. Many windoids can be opened by using different names. </span><span class="style3">Text</span><span class="style1"> is the text that will be displayed in the windoid. It can be litteral or a field descriptor. </span><span class="style5">Textoid "Test","This is my text"</span><span class="style1"> </span><span class="style5">Textoid "Test",cd fld 1</span><span class="style1"> If you pass a valid field descriptor enclosed in quotes, HyperCard will not interpret it and Textoid will use the full-styled text of that field rather than its text only. If the descriptor is not valid, Textoid will use it as litteral. </span><span class="style5">Textoid "Test","cd fld 1"</span><span class="style1"> If you want to use the field name, you will use : </span><span class="style5">Textoid "Test","cd fld" && quote & "Name" & quote</span><span class="style1"> </span><span class="style3">WStyle</span><span class="style1"> is a string defining the window style. Allowed styles are : plain, zoom, roundRect, rect, shadow, windoid, windoidZoom, bigWindoid, bigWindoidZoom, Rinaldoid, RinaldoidZoom (Rinaldoid is the same as windoid, except that it displays the window title). All window styles are floating, except plain, zoom and roundRect. A windoid or Rinaldoid style window will have small scrollbars, while other styles will use standard size. Default is RinaldoidZoom if Rinaldoid WDEF resource is present, windoidZoom if not found. </span><span class="style3">Color</span><span class="style1"> is a one or two items string giving the foreground and background color. For each item, allowed values are the standard colors (black, white, blue, red, yellow, cyan, magenta, green), or a three word string corresponding to red, green and blue values (100 5624 28652). </span><span class="style3"><X,Y[,Z,T]></span><span class="style1"> will be a point or a rect, and will define position and/or size of the windoid. Coordinated are card-relative. If omitted, windoid will appear with standard size at "0,10". </span><span class="style3">textWrap</span><span class="style1"> is a boolean to wrap (true) or not (false) the text in the windoid. This param makes also the horizontal scrollBar be invisible (true) or visible (false). Default is true, and horizontal scroll being hidden. </span><span class="style3">FName</span><span class="style1"> is a string giving the font that will be used. Default is Geneva. </span><span class="style3">FSize</span><span class="style1"> is a string giving the font size that will be used. Default is 9. </span><span class="style3">FStyle</span><span class="style1"> is an item(s) string giving the font style(s) that will be used (plain, bold, italic, outline, underline, shadow, condense, extend, grouped). Default is Plain. </span><span class="style3">FAlign</span><span class="style1"> is a string giving the text alignment that will be used (left,right, center). Default is left. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).</span><span class="style4">USING</span><span class="style1"> Textoid is stand alone, no linked resource is needed. Meanwhile, this stack contains a WDEF and a CDEF resource that are recognized by the XCMD if present. The WDEF allows to have an enhanced windoid-type window displaying title, while the CDEF is useful to get nice-looking scroll arrows for small scroll bars. So, these resources are optional, and for aesthetic purpose only. If you copy them, their ID can be set to any value but don't change their name. Each window can contain up to 32000 chars.</span><span class="style3">Hint</span><span class="style1"> : If you use a rect or shadow style window, placing it on a card can simulate a smart double-scroll HyperCard field. With multiple screens configuration, the windoid will be zoomed on the screen that it lays on. Textoid offers full text editing with Cut, Copy, Paste and Erase. </span><span class="style2">lockText </span><span class="style1">property allows to lock/unlock the content. When a window is created, its text is locked. Like for a field, the content must be locked to accept mouseDown events (thus HyperText). If unlocked, the insertion point will be set at the clickLoc.</span><span class="style3">Shortcuts</span><span class="style1"> : • Control-Clic in text allows to move the window • Command-Click in text locks/unlocks the text (only if </span><span class="style2">UnLockAllowed</span><span class="style1"> property is true). • Option-Clic in text allows to move text with grabber hand • Holding ShiftKey makes any scrolling smoother. • Holding OptionKey while clicking in a scrollBar reverses the scroll • Command-A selects the whole text (if unlocked) • Control-Option-P, B, I, U, O, S, C, E, G changes selection style </span><span class="style2">SelectedChunk</span><span class="style1"> property allows to select any part of the text. When using </span><span class="style5">set selectedChunk of window "MyWindow" to "X,Y"</span><span class="style1">, the window is brought to the front, the text is automatically unlocked, scrolled to show the insertion point, and you are ready to type in it. You can also get the selectedChunk when the window is closed using :</span><span class="style5"> on closeTextoid Which get selectedChunk of window Which put char (item 1 of it) to (item 2 of it) of Text¬ of window Which end closeTextoid</span><span class="style1"> In order to allow text manipulation by clicking on an HC button, Textoid keep the last selection in a global variable </span><span class="style2">TextoidLastSelection</span><span class="style1"> : "<first char>,<last char>,<window name>,<window ID>" Following script will chage current selection to bold :</span><span class="style5"> on mouseUp global TextoidLastSelection put item 3 of TextoidLastSelection into WName set selectedChunk of window WName to ¬ item 1 to 2 of TextoidLastSelection set textStyle of window WName to "bold" end mouseUp</span><span class="style1"></span><span class="style3">Hint</span><span class="style1"> : the insertion point will be placed at the end of the text by using : </span><span class="style5">set selectedChunk of window MyWindow to 32000</span><span class="style1"> When a Textoid is displayed, font, style, size and even color are accessible using the existing menus. These act exactly like for HyperCard fields : if there is no current selection in the windoid, menus change the global window attributes. Otherwise, only the current selection attributes are changed. </span><span class="style2">FieldTransfer</span><span class="style1"> property (</span><span class="style3">set</span><span class="style1"> only) allows to transfer the full-styled text from the windoid to any existing field. Field descriptor must be enclosed in quotes, like the input parameter. </span><span class="style5">set fieldTransfer of window "Test" to "cd fld 1"</span><span class="style1"> Both scrollBars can now be hidden. In this case, the growBox remains hidden, but is stilll active.</span><span class="style5"> on openTextoid WName,WId if WName is "MyWindow" then set textWrap of window WName to true set ShowVScroll of window WName to false end if end openTextoid</span><span class="style1"> The window content can now be printed by using :</span><span class="style5"> send "print" to window "MyWindow"</span><span class="style1"></span><span class="style5"></span><span class="style4">MESSAGES</span><span class="style1"> </span><span class="style3">OpenTextoid</span><span class="style1"> : sent when a windoid is opened, followed by the windoid name and ID. This allows to define window properties before it is shown, since the message can be trapped using a handler :</span><span class="style5"> on openTextoid WName,WId if WName is "MyWindow" then... end openTextoid</span><span class="style1"> </span><span class="style3">CloseTextoid</span><span class="style1"> : sent when a windoid is closed, followed by the windoid name and ID. This allows to define window properties before it is shown, since the message can be trapped using a handler :</span><span class="style5"> on closeTextoid WName,WId if WName is "MyWindow" then... end closeTextoid</span><span class="style1"> </span><span class="style3">ActivateTextoid</span><span class="style1"> : sent for non-floating windows only (plain, zoom, roundRect), when the window is activated. It is followed by the windoid name and ID.</span><span class="style3"></span><span class="style1"> </span><span class="style3">DeActivateTextoid</span><span class="style1"> : sent for non-floating windows only (plain, zoom, roundRect), when the window is de-activated. It is followed by the windoid name and ID.</span><span class="style3"></span><span class="style1"> </span><span class="style3">ClickInText</span><span class="style1"> : </span><span class="style5">s</span><span class="style1">ent when clicking on a word in the locked window, followed by the clicked word, windoid name and ID, start and end char being clicked, font, size, style and color of text. If the whole sent string (message + params) exceeds 255 chars, then the string will consist of its first 254 chars, followed by character "..." to signify the overflow (the ellipsis character, not three dot characters, hex C9).</span><span class="style5">on clickInText Wrd,WName,WId,Start,Stop,Fnt,Size,Stl,Col if WName is "Test1" and Wrd is ...end clickInText</span><span class="style1"></span><span class="style3">Note</span><span class="style1"> : Fnt, Size, Stl et Col may contain many items if the clicked text has different text attributes.</span><span class="style4">PROPERTIES</span><span class="style1"> Like any XWindow, Textoid has properties that can be get and set thru HyperTalk. Default values are shown </span><span class="style14">underlined</span><span class="style1">. </span><span class="style5">properties of window "Textoid"</span><span class="style1"> will return an item list of all allowed properties : • loc : windoid's position according to card (X,Y) • globalLoc : windoid's position according to screen (X,Y) • visible : windoid's visibility (</span><span class="style14">true</span><span class="style1"> or false) • id : windoid's id (</span><span class="style3">get</span><span class="style1"> only) • messages : list of messages sent by the windoid • text : windoid's text (quoted field descriptor gives full style) • rect : windoid's position and size according to card (X,Y,Z,T) • globalRect : windoid's position and size according to screen (X,Y,Z,T) • textFont : current selection's or windoid's font (</span><span class="style14">geneva</span><span class="style1">, times, …) • textSize : current selection's or windoid's font size (</span><span class="style14">9</span><span class="style1">, 10,…) • textAlign : windoid's text alignment (</span><span class="style14">left</span><span class="style1">,right,center) • textStyle : current selection's or windoid's text style (</span><span class="style14">plain</span><span class="style1">,italic, bold,outline,underline,shadow,condense,extend,grouped) • hScroll : horizontal scroll value (X pixels) • vScroll : vertical scroll value (X pixels) • zoom : zoomed state (</span><span class="style14">in</span><span class="style1">, out) • textColor : current selection or windoid's text color (</span><span class="style14">black</span><span class="style1">, white, blue, red, yellow, cyan, magenta, green) or (R G B) • backColor : back color (black, </span><span class="style14">white</span><span class="style1">, blue, red, yellow, cyan, magenta, green) or (R G B) • lockText : text locking (</span><span class="style14">true</span><span class="style1"> or false) • viewChunk : visible text portion (Start[,Stop]) • selectedChunk : current selection offset (Start,Stop) • selectedText : current selection text (</span><span class="style3">set</span><span class="style1"> allows to replace selected text in the window by another text) • fieldTransfer : text transfer to any field</span><span class="style3"> </span><span class="style1">(</span><span class="style3">set</span><span class="style1"> only) • textWrap : wrapping of text (</span><span class="style14">true</span><span class="style1"> or false) • textWidth : width of text</span><span class="style3"> </span><span class="style1">(</span><span class="style3">set </span><span class="style1">has no effect if </span><span class="style2">textWrap</span><span class="style1"> = true) • UnLockAllowed : unlocking text by Cmd-click permission (</span><span class="style14">true</span><span class="style1"> or false) • GrowAllowed : window growing permission (</span><span class="style14">true</span><span class="style1"> or false) • MoveAllowed : window moving permission (</span><span class="style14">true</span><span class="style1"> or false) • ShowVScroll : vertical scrollBar visible (</span><span class="style14">true</span><span class="style1"> or false) • ShowHScroll : horizontal scrollBar visible (= NOT textWrap)</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, external can return : "Error : Missing window name" "Error : Text cannot exceed 32000 chars" "Error : Unrecognized parameter" "Error : Duplicate window name" "Error : Empty parameter" "Error : Window rect defined twice" "Error : Window loc defined twice" "Error : Text wrap defined twice" "Error : Font size defined twice" "Error : Font name defined twice" "Error : Font style defined twice" "Error : Font alignment defined twice" "Error : Bad text style" "Error : Unable to create XWindow" "Error : XWindows not implemented" "Error : Bad property value"</span><span class="style4">VERSIONS HISTORY</span><span class="style3">3.6</span><span class="style1"> : </span><span class="style3">07/08/92</span><span class="style1">• Added printing feature• Added extended keyboard function keys support• Text color is not lost anymore when setting the text property</span><span class="style2"></span><span class="style1"></span><span class="style3">3.5</span><span class="style1"> : </span><span class="style3">05/21/92</span><span class="style1">• Added </span><span class="style2">owner </span><span class="style1">property</span><span class="style2"></span><span class="style1"></span><span class="style3">3.4 : 05/05/91</span><span class="style1">• Fixed "set rect" property</span><span class="style3">3.3 : 04/21/91</span><span class="style1">• Fixed bug appearing with Classic/System 6• Enhanced property error handling• Changed SetClickLoop</span><span class="style3">3.2 : 03/12/92</span><span class="style1">• No more CURS resources creation in res file• Last selection stored in </span><span class="style2">TextoidLastSelection </span><span class="style1">global variable• Added </span><span class="style2">ActivateTextoid</span><span class="style1"> and </span><span class="style2">DeActivateTextoid </span><span class="style1">messages</span><span class="style2"></span><span class="style1">• HyperText uses Script Mgr to get word boundaries• Fixed default window position• </span><span class="style2">Grouped </span><span class="style1">style now supported</span><span class="style2"></span><span class="style1">• Fixed edition in non-floating windows• ScrollBars are updated while click-dragging in text• Non-floating windows no more hidden when switching feom HC• Added window ID param with all messages• Added </span><span class="style2">id</span><span class="style1">, </span><span class="style2">messages, UnLockAllowed,GrowAllowed, MoveAllowed</span><span class="style1">, </span><span class="style2">ShowVScroll</span><span class="style1">, </span><span class="style2">ShowHScroll</span><span class="style1"> and </span><span class="style2">viewChunk </span><span class="style1">properties</span><span class="style2"></span><span class="style1">• Horizontal scrollBars visible only if needed (</span><span class="style2">textWrap</span><span class="style1"> = false)• Both scrollbars can now be hidden• Fixed many other small bugs</span><span class="style3">3.1 : 05/25/91</span><span class="style1">• fixed set textSize bug</span><span class="style3">3.0 : 04/24/91</span><span class="style1">• Full Undo now supported• All text attributes properties now apply to current selection if one• Added text grabbing with option-click in text• Holding shift key while using a scrollBar inverses the scrolling direction• Holding option key while using a scrollBar gives smooth scrolling• Command-click now </span><span class="style4">also</span><span class="style1"> unlocks the text• Insertion caret placed in text as soon as unlocked, no more second click needed• Scrolls are now hidden for non-floating backmost windows• ForeColor property renamed TextColor• ClicInText message renamed Clic</span><span class="style4">k</span><span class="style1">InText• selectedText property renamed selectedChunk• Added selectedText property to get selection's text• Added style shortcuts (Ctrl-Option P, B, I, U, O, S, C, E)• Added Alignment items in style menu• Text Color is passed along with ClicInText message, as well as different text attributes if there are.• Default scroll is now fast, slow optional• Fixed Font and Style menu handling bug• Window rect calculation tuned to match field rect calculation• Fixed scroll bar update when end of text is deleted• Fixed wrapping when text changed from an existing field• Fixed non-floating window re-activation</span><span class="style3">2.2 :</span><span class="style1">• Text Font, Size and Style are passed along with ClicInText message.</span><span class="style3">2.1 :</span><span class="style1">• Clicked word font, size and style are now passed along with clicInText</span><span class="style3">2.1 :</span><span class="style1">• Textoid supports now full styled text !• Added fieldTransfer, textWidth and textWrap properties• Added fore and background color menu items• Fixed unwanted autoscroll with HyperText• Wrap property not changed anymore when resizing window• Default text width is now 3000 for non-wrapping text• Clipboard is correctly transfered while switching• Fixed last null char of text bug</span><span class="style3">2.0 :• </span><span class="style1">enhanced window show/hide handling while switching under MultiFinder• selection restored when activating non-floating windows• text font, size and style can now be set using menus• window ordering now correct when zooming in/out• fixed random bug coming from bad controlHandle• window clipboard now transferred only if not empty• fixed hypertext bug when clicking on last word• idle sent to card window even while editing windoid's text• added start and stop char passed along with ClicInText message</span><span class="style3">1.9</span><span class="style1"> :• changed inContent cursor</span><span class="style3">1.8</span><span class="style1"> :• Added window style parameter• Added "openTextoid" message• Fixed rect/globalRect property to not show window if invisible• Added support of Rinaldoid WDEF and CDEF</span><span class="style3">1.6</span><span class="style1"> :• Window title is displayed• All RBG values available for color• Added "closeTextoid" message when closing window• Fixed minor bugs• Added "selectedText" property• Added command-A shortcut</span><span class="style3">1.5</span><span class="style1"> :• full text editing added.</span><span class="style3">1.4</span><span class="style1"> : • fixed a bug arising on CPUs with no Color QuickDraw</span><span class="style3">1.3</span><span class="style1"> :• Added color support</span><span class="style3">1.2</span><span class="style1"> :• fixed word hilighting with wrapping word</span><span class="style3">1.1</span><span class="style1"> :• fixed visual minor bugs (color GrowBox, multi-screen grow frame)• added hyperText capabilities• added properties : globalLoc,globalRect,textAlign,textStyle,hScroll, vScroll,zoom This stack also uses Switch & FullHpop XFCNs, © Frédéric RINALDI.</span></text>
<script>on mouseUpif there is not a window "TheList"thenset cursor to watchTabloid "TheList",cd fld "List","dis"end ifend mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>356</left>
<top>256</top>
<right>512</right>
<bottom>342</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>List</name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text><span class="style1"> </span><span class="style3">Tabloid 1.1</span><span class="style1"> </span><span class="style2"> by Frédéric RINALDI</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> Tabloid XCMD displays a spreadsheet like XWindoid, with multiple cells and columns.</span><span class="style4">SYNTAX</span><span class="style1"> Tabloid <WName>[,<List>[,<WStyle>[,<X,Y[,Z,T]>][,<NO|ONE|CON|DIS>] [,<cell(s)>][,<textFont[,textSize]>][,<textAlign>][,<frame>]]</span><span class="style4">PARAMETERS</span><span class="style1"> Only first param is needed. Order of params 3 to 7 doesn't matter, since the XCMD is able to recognize them. WName is a string giving the windoid name. Many windoids can be opened by using different names. List is a comma/return delimited string that will be displayed. Line separator is return, column is comma. WStyle is a string defining the window style. Allowed styles are : plain, zoom, roundRect, rect, shadow, windoid, windoidZoom, bigWindoid, bigWindoidZoom, Rinaldoid, RinaldoidZoom (Rinaldoid is the same as windoid, except that it displays the window title). All window styles are floating, except plain, zoom and roundRect. A windoid or Rinaldoid style window will have small scrollbars, while other styles will use standard size. Default is RinaldoidZoom if Rinaldoid WDEF resource is present, windoidZoom if not found. <X,Y[,Z,T]> will be a point or a rect, and will define position and/or size of the windoid. Coordinated are card-relative. If omitted, windoid will appear with standard size at "0,10". <NO|ONE|CON|DIS> defines the selection mode (no selection, one at a time, may but adjacent, many disjoint). Default is ONE. <cell(s)> comma separated list of cell coordinates. Each cell coordinate is a string of two integers separated by space, giving line and column number of the cell ("<line>_<column>[...,<line>_<column>]"). It defines the selected cells(s) when the windoid appears. Default is "1 1", but "0 0" can be used to have no selection at start. <textFont[,textSize]> is the name of font and its size to use. Default is Geneva 10. <textAlign> is the text alignment in the cells (left, center, right). Default is "left". <frame> is a boolean telling if the cells must be framed or not. Default is true, but frame appears only if Tabloid LDEF is present in resource fork. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).</span><span class="style4">USING</span><span class="style1"> Tabloid is stand alone, no linked resource is needed. Meanwhile, this stack contains a LDEF, WDEF and CDEF resources that are recognized by the XCMD if present. The LDEF allows to have framed cells like in a spreadsheet, vertical centering of text in cells and text alignmenet. The WDEF allows to have an enhanced windoid-type window displaying title, while the CDEF is useful to get nice-looking scroll arrows for small scroll bars. So, these resources are optional, and for aesthetic purpose only. If you copy them, their ID can be set to any value but don't change their name.</span><span class="style3">HINT :</span><span class="style1"> If you use a rect ot shadow style window, placing it on a card can simulate a smart HyperCard spreadsheet field. If no rectangle param is used, the size of the window will be set according to maximum number of lines and columns contained in the list. The cells have all the same size which is automatically calculated according to the longest contained string. Clicking on cells(s) in the windoid sends a "TabloidSelect" message followed by the clicked word(s) and the Tabloid name. This message can be trapped using a handler :</span><span class="style5"> on TabloidSelect What,Where if Where is "MyList" and What is ... end TabloidSelect</span><span class="style1"></span><span class="style3">NOTE :</span><span class="style1"> in order to avoid HyperCard's confusion, existing quotes in What param are automatically changed to single quote. When a windoid is opened, the "openTabloid" message is sent, followed by the windoid name. This allows to define window properties before it is shown, since the message can be trapped using a handler :</span><span class="style5"> on openTabloid Which if Which is "MyWindow" then... end openTabloid</span><span class="style1"> When a windoid is close, the "closeTabloid" message is sent, followed by the windoid name. This message can be trapped using a handler :</span><span class="style5"> on closeTabloid Which if Which is "MyWindow" then... end closeTabloid</span><span class="style1"></span><span class="style3">HINT :</span><span class="style1"> the card script contains a "on ControlKey" handler that allows selection of first matching cell when typing a key in conjunction with control key. Moreover, while holding the control key down, the arrow keys allow to move in the list, return or enter to simulate a double-clic. It is possible to send any string to search for to the window using : </span><span class="style5">send "string" to window <WName></span><span class="style1"> If the string is found, it will be highlighted int the window. Look for "on controlKey" handler in the card script, type Control+Key to try it. The lockText property define the behaviour of the window. Default value is TRUE, meaning that a click on a cell selects it. When cursor is over window, holding Option key (or having lockText set to FALSE) allows to change cell size by dragging or edit their content. The cursor's shape tells exactly what can be done. One in editing mode, cell is framed and moving around is possible using Tab or Return key with or without Shift key (validation). To exit editing, type Enter (validation) or Escape key (cancelling), or click in any other cell. Setting properties involving cell size also resizes the window to keep previously visible cell still visible.</span><span class="style4">PROPERTIES</span><span class="style1"> Like any XWindow, Tabloid has properties that can be get and set thru HyperTalk. “properties of window "name"” will return an item list of all allowed properties : • loc : windoid's position according to card • visible : windoid's visibility • text : windoid's text • rect : windoid's position and size according to card • selectedCell : cell(s) currently selected • selectionMode : selection mode (NO|ONE|CON|DIS) • frame : cell frame (true|false) • columnWidth : width of columns in pixels • rowHeight : height of rows in pixels • lockText : locking/unlocking cells • textFont : font name • textSize : font size • textAlign : font alignment</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, Tabloid can return : "Error : Missing window name" "Error : Duplicate window name" "Error : Empty parameter" "Error : Bad Font size" "Error : Unknown font name" "Error : Unrecognized parameter #xx" "Error : Unable to create XWindow" "Error : XWindows not implemented" "Error : Couldn't create list"</span><span class="style4">VERSION HISTORY</span><span class="style1"></span><span class="style3">1.1 :</span><span class="style1">• Added properties columnWidth, rowHeight, lockText, textFont, textSize & textAlign• Updated LDEF resource (1.1)• Added editing feature• Added cell sizing• Fixed window update• fixed window visible state when switching under MultiFinder</span></text>
<script>on closeTabloid Whichput "You closed windoid ΓÇ£" & Which & "ΓÇ¥"end closeTabloidon controlKey Whatif there is a window "TheList"then send numToChar(What) to window "TheList"pass controlKeyend ControlKeyon TabloidSelect What,Whereput Where & " : " & Whatend TabloidSelecton opencardend opencardon closeCardif there is a window "TheList"then close window "TheList"end closeCard</script>
</card>
card_58131.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpshow cd fld 2put Switch(cd fld 2) into cd fld 2end mouseUp</script>
</part>
<part>
<id>4</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>143</left>
<top>109</top>
<right>365</right>
<bottom>215</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide meend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> Switch 1.3 by Frédéric RINALDIDESCRIPTION------------ Switch transforms an items list to lines list, and vice-versa.SYNTAX------- Switch (<container>)PARAMETERS------------ <container> is the text to switch. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the switched text. It takes care of itemDelimiter property available in HC 2.0.HISTORY--------1.0 17/07/92• First public release</text>
</content>
<content>
<layer>card</layer>
<id>4</id>
<text>toto,titi,tata,,tete,tutu</text>
</content>
<name></name>
<script></script>
</card>
card_44235.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "String to mesure :" with "Test string"if it is empty then exit mouseUpput it into Textask "Font name :" with "Chicago"if it is emptythenanswer StrWidth(text)elseput it into Fontask "Font size :" with "12"if it is emptythenanswer StrWidth(text,Font)elseput it into Sizeask "Font style(s) :" with "plain"if it is emptythen answer StrWidth(text,Font,Size)else answer StrWidth(text,Font,Size,it)end ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> StrWidth 1.0 by Frédéric RINALDIDESCRIPTION------------ StrWidth XFCN returns the length in pixels of a string, according to its text attributes.SYNTAX-------- StrWidth(<text>[<font>[,<size>[,<style(s)>]]]PARAMETERS------------ Text is the string to mesure. It cannot exceed 255 chars. The following params are optional. Default is Chicago 12 plain. Font is the font name. Size is the font size. Style is a comma separated list of one or more items containing the style(s) of the text. (plain, bold, italic, outline, underline, shadow, condense, extend) Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING-----If an StrWidth occurs, external can return : "Error : Missing parameter" "Error : No such Font" "Error : Bad font size"</text>
<text> StripDup 1.1 by Frédéric RINALDIDESCRIPTION------------ StripDup allows to quickly remove all duplicates lines, items or words from a string.SYNTAX------- StripDup(<List>[,<case sens>][,<separator>])PARAMETERS------------ <List> is the input string. Return, comma or space are automatically recognized as separator when used in string. <case sens> is a boolean setting the search to be case sensitive (TRUE) or not (FALSE, default option). <separator> can be any character allowing to use non usual separator. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the purged string.ERRORS-------If an error occurs, StripDup can return : "Error : Missing parameter" "Error : Incorrect param #X"HISTORY--------1.1 : 02/23/92• Enhanced separator parser</text>
<script>on mouseUpask "Resource name :" with "Test"if it is empty then exit mouseUpput it into Nameanswer "Recording quality :" with "Good" or "Best" or "Better"put it into Qualityanswer "Force STAR creation :" with "Yes" or "No"put (it is "Yes") into AddStaranswer "Install the sound in :" with "Other stack" or "Current stack"if it is "Other stack"thenif last word of the version ≥ 2.0then answer file "File to search in :"else ask "PathName of file to search in :"if it is empty then exit mouseUpif AddStarthen SoundRecord Name,Quality,"AddStar",itelse SoundRecord Name,Quality,itelseif AddStarthen SoundRecord Name,Quality,"AddStar"else SoundRecord Name,Qualityend ifif the result ≠ emptythen answer the Resultend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> SoundRecord 1.4 by Frédéric RINALDIDESCRIPTION------------ SoundRecord allows to record sound using any recognized sound input device. It works with both HyperCard & SuperCard.SYNTAX-------- SoundRecord <res name>[,<quality>][,<dest file>][,<"AddStar">]PARAMETERS------------ <res name> is the name of the "snd " resource to be created. <quality> is the recording quality. it can be "good", "better" or "best". Default is "better". <dest file> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. Aliases are also supported. Default is current stack. <"AddStar"> allows to force creation of fake STAR resource for SuperCard projects, even with non standard file creator. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- Calling the XCMD brings the standard recording dialog, and requires System 6.0.5 or higher. Any previous "snd " resource with same name is simply replaced by the new recorded one. Using HyperCard 2.x, sound will be saved as Type 1 snd resource, while it will be saved as Type 2 snd using HyperCard 1.x or SuperCard.ERRORS-------If an error occurs, SoundRecord can return : "Error : Too old Sound Manager version" "Error : Cannot record sound with this System version" "Error : Input device not available" "Error : Missing or empty parameter" "Error : Bad recording quality parameter" "Error : Invalid sound input device" "Error : Sound input device unavailable" "Error : Couldn't create "snd " resource" "Error : Couldn't create "snd " STAR resource" "Error : unknown #xx"HISTORY--------1.4 11/08/91• Added "AddStar" param1.3 10/15/91• Sound always recorded as fake data resource in SC files1.2 10/11/91• Sound recorded as real resource in non-current standalone SC projects1.1 10/10/91• Added <dest file> param• Created 'snd ' resource IDs are never in 0..8191 (Apple reserved slots) • Enhanced Type1 -> Type2 snd conversion• Fixed HC2 environment test1.0 10/04/91• First release</text>
<script>on mouseUpget folderName("Select Folder to change :")if it is emptythen exit mouseUpput it into Folderanswer "Invisible :" with "False" or "True"ShowHideFolder Folder,itif the Result Γëá emptythen answer the Resultend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ShowHideFolder 1.1 by Frédéric RINALDIDESCRIPTION------------ ShowHideFolder allows make a folder visible/invisible.SYNTAX--------ShowHideFolder <folder path>,<invisible>PARAMETERS------------ <folder path> is the folder complete pathName, with or without trailing colon. If only a name is supplied, the folder is considered in the same folder as the current stack. <invisible> is a boolean, TRUE making the folder invisible. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING-----If an error occurs, ShowHideFolder can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Second param must be boolean"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help</text>
<script>on mouseUpglobal SavedVideoanswer "Video mode :" with "Cancel" or "Black" or "Color"if it is "Cancel" then exit mouseUpput it into Modeask "Video depth : (1.." & item 5 of SavedVideo & ")" with 1if it is empty then exit mouseUpput it into Depthask "Screen number : (nothing,*,1.." & number of lines of SavedVideo¬& ")"if it ≠ emptythen SetMode Mode,Depth,itelse SetMode Mode,Depthif the Result ≠ emptythen answer the Resultend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> SetMode 1.2 by Frédéric RINALDI IMPORTANT NOTICES -------------------• SetMode works only with System >= 6.0.5• Since changing video mode is not recommended by Apple Interface Guideli-nes, always switch back to previous mode when leaving the stack. (see stack script)DESCRIPTION------------ SetMode XCMD allows to switch any connected screen from one video mode and depth to another.SYNTAX-------- SetMode <B[lack]|C[olor]>,<1|2|4|8|32>[,<screen nb>]PARAMETERS------------ First param stands for the mode. Only first char is recognized. Param 2 is the video depth, an integer bit value. Last param is optional, and is an integer standing for the screen number (as returned by GetMode XFCN). If omitted, the changed screen will be the screen on which the card is. Using "*" will change all connected screen to the choose mode. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING-----If an error occurs, SetMode can return : "Error : Could'nt get SysEnvirons" "Error : XCMD needs System 6.0.5" "Error : Color QuickDraw not found" "Error : Missing parameter(s)" "Error : Mode param must be <B|C>" "Error : Depth not available on device X" "Error : Couldn't set depth on device X" "Error : Device not found"RELEASES HISTORY------------------1.2 :• Fixed last minute bug1.1 :• Screen garbage fixed when switching to 8bit, thanks to Bill Steinberg.This stack also uses GetMode XFCN, © Frederic RINALDI.</text>
</content>
<name>SetMode 1.2</name>
<script>on opencardglobal SavedVideo-- sauvegarde du mode vidéo courantput GetMode() into SavedVideoend opencardon closeCardglobal SavedVideo-- restauration du mode vidéo initialget GetMode()repeat with i=1 to number of lines of SavedVideoif line i of it ≠ line i of SavedVideothen do "SetMode" && line i of SavedVideoend repeatend closeCard</script>
</card>
card_42042.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpput FilePath(empty,"File to change :") into Fileif File Γëá emptythenanswer "Change :" with "Unlock" or "Lock"SetFinderLock File,(it is "Lock")if the Result Γëá emptythen answer the Resultend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> SetFinderLock 1.1 by Frédéric RINALDIDESCRIPTION------------ SetFinderLock XCMD allows to lock/unlock a file (Finder info checkbox).SYNTAX-------- SetFinderLock <file path or name>[,<locked>][,"DontResolveAlias"]PARAMETERS------------ <file path or name> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <locked> is a boolean defining the lock state. Default is TRUE. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" and "=" as parameter will return an online help (resp. copyright, syntax and output).USING-----If an error occurs, SetFinderLock can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter" "Error : Bad param #X"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "DontResolveAlias" parameter• Added "=" param for online helpThis stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc.)</text>
<script>on mouseUpget FilePath(empty,"File to change :")if it is empty then exit mouseUpput it into TheFileask "Name of the flag :"if it is empty then exit mouseUpput it into TheFlaganswer "Set ΓÇ£" & theFlag & "ΓÇ¥ to :" with "Cancel" or "False" or "True"if it is "Cancel" then exit mouseUpSetFileFlag TheFile,TheFlag,itif The Result Γëá emptythen answer the Resultelse answer TheFlag && "flag is now set to" && itend mouseUp</script>
</part>
<part>
<id>29</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>165</left>
<top>24</top>
<right>337</right>
<bottom>289</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>bold</textStyle>
<textHeight>11</textHeight>
<name></name>
<script>on mouseUphide cd fld 2hide cd fld 3end mouseUp</script>
</part>
<part>
<id>30</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>258</left>
<top>24</top>
<right>335</right>
<bottom>289</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>11</textHeight>
<name></name>
<script>on mouseUphide cd fld 2hide cd fld 3end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> SetFileFlag 1.1 by Frédéric RINALDIDESCRIPTION------------ SetFileFlag is an XCMD allowing to change the value of the authorized Finder flags of a file.SYNTAX------- SetFileFlag <file path or name>,<flag name>[,<flag state>] [,"DontResolveAlias"]PARAMETERS------------ <file path or name> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <flag name> must be one of the following string values (accepted System 7.0 values are enclosed in brackets) : busy (hasCustomIcon), noCopy (isStationery), hasBundle, System (nameLocked), invisible (isInvisible) <flag state> is a boolean defining the desired state of the choosen flag. Default value is TRUE. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- If an error occurs, the XCMD will return in the Result : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Bad param #X" "Error : Bad or unauthorized flag name"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "DontResolveAlias" parameter• Added "=" param for online helpThis stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc.)</text>
<script>on mouseUpanswer "Send :" with "Cancel" or "Field" or "File"if it is "File"thenget FilePath("TEXT","PostScript file :")if it is empty then exit mouseUpSendPS itelse SendPS cd fld 4end mouseUp</script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>98</left>
<top>87</top>
<right>408</right>
<bottom>222</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>27</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>107</top>
<right>381</right>
<bottom>207</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
<text> SendPS 1.3 © G. Kruckewitt & F. RinaldiDESCRIPTION------------ SendPS allows to send PostScript datas to a LaserWriter over AppleTalk.SYNTAX--------- SendPS <container or pathname> [,<page setup> [,<print dialog>]]PARAMETERS------------ <container or pathname> can be either any valid container of HyperTalk, or the full pathname of a Postscript file. In the second case, a single name assumes the file is in the same folder than the current stack. <page setup> is a boolean allowing to get the page setup dialog. Default is FALSE. <print dialog> is a boolean allowing to get the printing dialog. Default is FALSE. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING------ If an error occurs, the Result can contain : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing parameter" "Error : Could't allocate file buffer" "Error : Second param must be boolean" "Error : Third param must be boolean" "Error : Out of memory"HISTORY----------1.0 : first release1.1 : use of spooler is allowed blank trailing page removed when using a spooler suppression de la page blanche en cas d'utilisation de spooler1.2 : size of datas to be send can exceed 32 kb.1.3 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online helpThis stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc.)-------------------------------------------------------------------- This XCMD is copyrighted, and cannot be used in any way without the express permission of both authors. Special use permission given for "Apple Utilisateur" and "Developer's CD" © G. KRUCKEWITT & F. RINALDI 1990,1991AppleLink: RINALDI1 Calvacom : FR10 Compuserve : 71170,2111</text>
</content>
<content>
<layer>card</layer>
<id>28</id>
<text>%! star name demo Ivar Michelsons - Adobe Systems, Inc./firstname (Adobe) def/lastname (Systems) def/inch {72 mul} def/LM 2 inch def/RM 6.5 inch def/TM 9 inch def/BM 5 inch def/newline{currentpoint 13 subexch pop LMexch moveto} def/linewrap{currentpoint pop RM gt {newline} if} def/done?% return stack: boolean{currentpoint exch pop BM lt} def/starside{4 inch 0 linetocurrentpoint translate-144 rotate} def/star% stack: x y{movetocurrentpoint translate4 {starside} repeatclosepathgsave0 setgray fillgrestore} def/Times-Bold findfont 11 scalefont setfontgsave2.25 inch 7.53 inch starcurrentpoint translate-144 rotate-2.25 inch -7.53 inch translateLM TM moveto1 setgray{{pop pop linewrap} firstname kshow ( ) show {pop pop linewrap} lastname kshow ( ) show done? {exit} if } loopgrestoreshowpage</text>
</content>
<name>SendPS 1.3</name>
<script>on opencardend opencardon closeCardhide cd fld 3hide cd fld 2end closeCard</script>
</card>
card_57568.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> SelectFile 1.0 by Frédéric RINALDIDESCRIPTION------------ SelectFile provides a dialog allowing to choose a file (SFGetFile). Not anymore required with HC2.0 which includes this feature.SYNTAX------- SelectFile([<type1…[,type4]>][,<prompt>])PARAMETERS------------ <type1…[,type4]> is a 1 to 4 items string for filtering the displayed files according to their type. <prompt> is the message appearing in the dialog. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the full pathame of choosen file. An empty string is returned if the user clicked on Cancel. Although working fine with both System 6 and System 7, FullSFPack is better suited for the latter, due in part to alias handling.ERRORS-------If an error occurs, SelectFile can return : "Error : Missing DLOG/DITL resource(s)"HISTORY--------1.0 17/07/92• First public release</text>
</content>
<name></name>
<script></script>
</card>
card_55177.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> SelectDir 1.1 by Frédéric RINALDIDESCRIPTION------------ SelectDir provides a dialog allowing to choose a folder.SYNTAX-------- SelectDir([<prompt>])PARAMETERS------------ <prompt> is the message appearing in the dialog. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the full pathame of choosen folder. An empty string is returned if the user clicked on Cancel. Although working fine with both System 6 and System 7, FullSFPack is better suited for the latter, due in part to alias handling. This XFCN require 2 related DLOG and DITL resources.ERRORS-------If an error occurs, SelectDir can return : "Error : Missing DLOG/DITL resource(s)"HISTORY--------1.0 17/07/92• First public release</text>
</content>
<name></name>
<script></script>
</card>
card_40670.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "ScrapBook file ?"if it Γëá emptythen ClipToScrap itelse ClipToScrapget the Resultif it Γëá emptythen answer itelse answer "Item sucessfully added"end mouseUp</script>
</part>
<part>
<id>25</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>301</left>
<top>287</top>
<right>471</right>
<bottom>309</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>ScrapToClip</name>
<script>on mouseUpask "ScrapBook file ?"put it into ScrapNameget spacerepeat until it Γëá space and it Γëá emptyask "Item number to get :" with 1end repeatput it into Nbif ScrapName Γëá emptythen ScrapToClip Nb,ScrapNameelse ScrapToClip Nbget the Resultif first word of it = "Error"then answer itelseif it is "TEXT"then select text of cd fld 2type "V" with commandKeyend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ClipToScrap 1.9 by Frederic RINALDIDESCRIPTION------------ Each time the XCMD is called, the clipboard's content is added to the choosen ScrapBook.SYNTAX------- ClipToScrap [<ScrapBook file>]PARAMETERS------------ With no parameter passed, the command uses the standard ScrapBook in the boot disk's System Folder. If a single name is passed, it uses the ScrapBook file in the boot disk's System Folder. With a full pathname, the ScrapBook can be precisely localised on the volume.USING----- In any case, if the ScrapBook file already exists, the clipboard's content is simply added to the end of it. Otherwise, the ScrapBook file is created and its content set to the first item. If no error occured, the Result will be empty. Otherwise, it can contain : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Volume not found" "Error : ScrapBook creation failed" "Error : Folder not found" "Error : ScrapBook already open" "Error : Unknown #XX" "Error : Couln't load Scrap" "Error : Empty ClipBoard" "Error : Couldn't find System folder" "Error : Not a ScrapBook file" "Error : ScrapBook file is full" "Error : Adding ClipBoard to ScrapBook failed"HISTORY--------1.9 : 12/25/91• Fixed alias file bug under System 7.0.11.8 : 12/04/91• Fixed new scrapBook file creation bug1.7 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help1.5 :• fixed bug arising on Mac Plus only1.3 :• fixed Clipboard resources counting• changed error messages1.2 :• complete rebuilt of code1.1 :• handling any type of Clipboard content ScrapToClip 1.9 by Frederic RINALDIDESCRIPTION------------ The command gets the choosen item from the designed ScrapBook file and places it in the clipboard.SYNTAX------- ScrapToClip <item number|*> [,<ScrapBook file>] [<remove>]PARAMETERS------------- <item number|*> is a positive integer giving the item's row to get in the ScrapBook, or "*" (designing the last item of Scrapbook). If <ScrapBook file> is omitted, the command uses the standard ScrapBook in the boot disk's System Folder. If a single name is passed, it uses the ScrapBook file at the same hierarchical level as the current stack. With a full pathname, the ScrapBook can be precisely localised on the volume. <remove> is a boolean, telling if the Scrapbook item must be removed or not after its transfer to the Clipboard. Default is false (item kept).USING----- If no error occured, the Result will contains a comma-delimited list of the resource types transfered to the clipBoard. Otherwise, it can contain : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Couldn't find System folder" "Error : Missing item number" "Error : Item number must be ≥ 0" "Error : Not a ScrapBook file" "Error : No such item in ScrapBook" "Error : Couln't clear Clipboard" "Error : Couln't set Clipboard"HISTORY-------1.2 : 12/25/91• Fixed alias file bug under System 7.0.11.7 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help1.5 :• fixed bug arising on Mac Plus only1.3 :• Added Scrapbook item removing• changed error messages1.2 :• complete rebuilt of code1.1 :• handling any type of Clipboard content</text>
</content>
<name></name>
<script></script>
</card>
card_39961.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "Resource type :" with "TEXT"if it Γëá emptythenput it into Typeask "Resource name or ID :" with "Sample"if it Γëá emptythenput it into Resanswer "Strip control chars ?" with "No" or "Yes"show cd fld 2put ResText(Type,Res,(it is "Yes")) into cd fld 2end ifend ifend mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>70</left>
<top>68</top>
<right>433</right>
<bottom>252</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUpHideAllend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ResText 1.1 by Frédéric RINALDIDESCRIPTION------------ ResText XFCN allows to get text from any resource.SYNTAX-------- ResText(<res type>,<res ID or name>[,<fileName>] [,<stripCtrl>][,"DontResolveAlias"])PARAMETERS------------ <res type> is a four chars string, giving the resource type. <res ID or name> can be the ID or the name of the resource. <fileName> is optional, and the full pathname of the file to get the resource from. It can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. If not provided, the current stack is used. <stripCtrl> is a boolean allowing to filter control chars from the got text. Default is TRUE. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the text read from the resource.If an error occurs, ResText can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Bad resource type" "Error : Resource not found" "Error : Out of memory"HISTORY--------1.1 :• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help</text>
</content>
<name>ResText 1.1</name>
<script>on opencardend opencardon closeCardHideAllend closeCardon HideAllhide cd fld 2put empty into cd fld 2end HideAll</script>
</card>
card_51130.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> ResolveAlias 1.1 by Frédéric RINALDIDESCRIPTION------------ ResolveAlias simply returns the real pathname pointed by an alias file. It requires System 7.SYNTAX------- ResolveAlias <pathname>PARAMETERS------------ <pathname> is the full pathName of the alias file. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN return the resolved alias path. Any level-depth aliasing is resolved. If the pointed file is on a distant volume, the result will contain a second line : "<zone name>:<server name>"ERROR------If an error occurs, ResolveAlias can return : "Error : Couldn't mount required volume" "Error : Alias Mgr error" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : I/O Error"HISTORY--------1.1 06/01/92• Added zone & server names in the result1.0 03/13/92• First release</text>
</content>
<name></name>
<script></script>
</card>
card_53715.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "Remplace chars in text field :" with "éèà"if it is empty then exit mouseUpput it into Targetask "By chars :" with "eea"if it is empty then exit mouseUpshow cd fld 2put ReplaceCharSet(cd fld 1,Target,it) into cd fld 2show cd fld 2end mouseUp</script>
</part>
<part>
<id>3</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>69</left>
<top>68</top>
<right>434</right>
<bottom>252</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script>on mouseUphide meput empty into meend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ReplaceCharSet 1.0 by Frédéric RINALDIDESCRIPTION------------ ReplaceCharSet allows to replace a whole set of chars by another, in one single pass.SYNTAX------- ReplaceCharSet(<text>,<original set>,<substitution set>)PARAMETERS------------ <text> is the text to modify. <original set> and <substitution set> are two sets of chars. They must have the same length. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN return the changed text. ReplaceCharSet is perfectly suited to change non-standard ASCII tables.ERRORS-------If an error occurs, ReplaceCharSet can return : "Error : Missing or empty parameter" "Error : Sets have different length"HISTORY--------1.0 17/07/92• First public release</text>
</content>
<name></name>
<script></script>
</card>
card_39452.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpget folderName("Select Folder to delete :")if it ≠ emptythenput it into Folderdelete last char of itanswer "Really erase “" & leafname(it) & "” ?" with "OK"¬or "Cancel"if it is "OK"thenset cursor to watchput "Deleting folder..."RemoveFolder Folderget the Resultput emptyif it ≠ emptythen answer itend ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> RemoveFolder 1.1 by Frédéric RINALDIDESCRIPTION------------ RemoveFolder is a XCMD allowing to delete a whole folder, even if it is not empty.SYNTAX------- RemoveFolder <folder path|name>PARAMETERS------------ <folder path|name> can be a single name or whole pathname. If just a single name is supplied, it is assumed to be in the same folder than the current stack.Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- If the remove is successfull, the Result will be empty. If an error occurs, the Result can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)"HISTORY--------1.1 :• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help The stack uses LeafName XFCN (by Kevin CALHOUN) and FolderName XFCN (by Eric CARLSON and Anup MURARKA).</text>
<script>on mouseUpedit script of this bgend mouseUp</script>
</part>
<part>
<id>16</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>101</left>
<top>302</top>
<right>270</right>
<bottom>332</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Promptoid</name>
<script>on mouseUpset cursor to 4if cd fld "Position" is emptythen Promptoid cd fld "Message",cd fld "ICON"else if cd fld "Width" is emptythen Promptoid cd fld "Message",cd fld "ICON",cd fld "Position"else Promptoid cd fld "Message",cd fld "ICON",cd fld "Position",cd fld "Width"wait 1 secondrepeat with i=1 to 10set text of window "Promptoid" to "Test" && iwait 10 ticksend repeatset text of window "Promptoid" to "Other message"wait 1 secondclose window "Promptoid"end mouseUp</script>
</part>
<part>
<id>17</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>69</left>
<top>278</top>
<right>360</right>
<bottom>296</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Message</name>
<script></script>
</part>
<part>
<id>18</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>448</left>
<top>262</top>
<right>484</right>
<bottom>280</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Position</name>
<script></script>
</part>
<part>
<id>19</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>448</left>
<top>278</top>
<right>484</right>
<bottom>296</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Width</name>
<script></script>
</part>
<part>
<id>20</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>294</left>
<top>262</top>
<right>360</right>
<bottom>280</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>ICON</name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text><span class="style1"> </span><span class="style3">Promptoid 1.3</span><span class="style1"> </span><span class="style2"> par Frédéric RINALDI</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> Promptoid allows to display a prompt dialog during any lengthy process. Dialog's width is set according to prompt string.</span><span class="style3">Caution</span><span class="style1"> This XCMD is the same as Prompt. Promptoid is for HC 2.0, while Prompt is for HC 1.2. If you already use Prompt in stacks to be converted in HC 2.0 format, just use the compatibility script below so that no script changes will be necessary while the calling convention has changed.</span><span class="style3"> </span><span class="style7"> </span><span class="style3">Compatibility script has changed with Promptoid 1.2.</span><span class="style1"></span><span class="style4">SYNTAX</span><span class="style1"> Promptoid [<message>[<ICON name or id>[,<VLoc>[,<width>]]]</span><span class="style4">PARAMETERS</span><span class="style1"> All parameteres are optional. <message> is the string to be displayed. <ICON name or id> is the name or ID of any ICON resource to be displayed in the dialog. <VLoc> is an integer giving the vertical position of the dialog according to the card window. Default is centered. <width> is an integer giving teh width of the dialog. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).</span><span class="style4">USING</span><span class="style1"> If <message> param is omitted, default dialog's width will be 300 pixels. If <VLoc> param is omitted, the dialog will be centered on the card.</span><span class="style4">PROPERTIES</span><span class="style1"> Like any XWindow, Promptoid has properties that can be get and set thru HyperTalk. </span><span class="style5"> properties of window "Promptoid"</span><span class="style1">will return an item list of all allowed properties : • icon : id and name of displayed ICON resource, empty if none • loc : dialog's loc according to card window • visible : dialog's display state • text : prompt shown in the dialog • vLoc : dialog's vertical loc according to card window • width : dialog's width</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, Promptoid can return :</span><span class="style4"></span><span class="style1"> "Error : Promptoid already displayed" "Error : Bad coordinate" "Error : Bad width" "Error : Unable to create XWindow" "Error : XWindows not implemented"</span><span class="style4">HISTORY</span><span class="style3">1.3 11/18/91</span><span class="style1">• Fixed visual aspect bug under System 7</span><span class="style3">1.2 8/16/91</span><span class="style1">• Added "=" online help param• Added </span><span class="style2">icon</span><span class="style1"> param and property• Dialog's width no more adjusted with </span><span class="style2">set text…</span><span class="style1"></span></text>
</content>
<content>
<layer>card</layer>
<id>17</id>
<text>This is a message</text>
</content>
<content>
<layer>card</layer>
<id>20</id>
<text>257</text>
</content>
<name></name>
<script></script>
</card>
card_38114.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpset cursor to 4if cd fld "Position" is emptythen Prompt 1,cd fld "Message"else if cd fld "Width" is emptythen Prompt 1,cd fld "Message",cd fld "Position"else Prompt 1,cd fld "Message",cd fld "Position",cd fld "Width"wait 1 secondrepeat with i=1 to 10Prompt 2,"Test" && iwait 10 ticksend repeatPrompt 1,"This is another message"wait 1 secondPrompt 3end mouseUp</script>
</part>
<part>
<id>8</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>448</left>
<top>278</top>
<right>484</right>
<bottom>296</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Width</name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> Prompt 2.5 ---------- © Frédéric RINALDIDESCRIPTION Prompt is a XCMD displaying an information dialog during the execution of a script. The dialog's width is set accordingly to the string width. WARNING : Prompt doen't work properly with HC 2.0. Rather use Promptoid XCMD.SYNTAXPrompt 1 [, <message> [, <vertical position> [, <width> ] ] ] Brings the dialog to screen, displaying the message. If message is omitted or empty, the dialog's width will be set by default to 300 points. If no vertical position is passed, the dialog will be centered vertically on the card. Dialog is resized when Prompt 1 is called twice.Prompt 2 , <message> Sets a new message in the current dialog.Prompt 3 Disposes the current dialog and clears it from the screen.USING If no error occured, the Result will be empty. Otherwise, it can contain : "Error : Bad Mode Parameter" "Error : Bad coordinate" "Error : Bad Width" "Error : Missing Parameter(s)" "Error : Prompt doen't work properly with HC 2.0"HISTORY-------2.5• Completely rewritten code• Better SuperCard compatibility• Added HC 2.0 warning2.4• Added automatice resizing when Prompt 1 is called twice.</text>
<script>on mouseUpget FolderName("Select folder :")if it Γëá emptythenput Privileges(it) into cd fld 5show cd fld 4show cd fld 5end ifend mouseUp</script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>98</left>
<top>87</top>
<right>408</right>
<bottom>222</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>27</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>107</top>
<right>381</right>
<bottom>207</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>28</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>166</left>
<top>121</top>
<right>338</right>
<bottom>202</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>bold</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUphide cd fld 4hide cd fld 5end mouseUp</script>
</part>
<part>
<id>29</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>236</left>
<top>151</top>
<right>331</right>
<bottom>194</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUphide cd fld 4hide cd fld 5end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> Privileges 1.2 by Frédéric RINALDIDESCRIPTION------------ Privileges returns the access privileges of a folder on an AppleShare volume.SYNTAX-------- Privileges(<folder path>)PARAMETERS------------ <folder path> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The string returned is an array of 3 lines of 3 boolean items. The arrangement of this array is exactly the same as the "Get Privileges" dialog of the Finder. True means authorized access. Owner Group All -------+------+------ See Folder X X X See Files X X X Modify X X X If an error occurs, the XFCN will return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter"HISTORY--------1.2 :• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online helpThis stack uses FolderName XFCN (© Eric CARLSON and Anup MURARKA) </text>
<script>on mouseUpif last word of the version ≥ 2.0then answer file "File to print :" of type PICTelse ask "Pathname of file to print :"if it is empty then exit mouseUpput it into FileNameanswer "Page setup dialog :" with "False" or "True"put it into PageSetupDLanswer "Printing dialog :" with "False" or "True"put it into PrintDLask "Prompt text :"put it into Legendask "Resource :" with "R="if it is emptythen PrintPict FileName,PageSetupDL,PrintDL,Legendelse PrintPict FileName,PageSetupDL,PrintDL,Legend,itif the Result ≠ emptythen answer the resultend mouseUp</script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>98</left>
<top>87</top>
<right>408</right>
<bottom>222</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>27</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>107</top>
<right>381</right>
<bottom>207</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>28</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>166</left>
<top>121</top>
<right>338</right>
<bottom>202</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>bold</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUphide cd fld 4hide cd fld 5end mouseUp</script>
</part>
<part>
<id>29</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>236</left>
<top>151</top>
<right>331</right>
<bottom>194</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUphide cd fld 4hide cd fld 5end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> PrintPICT 1.3 by Frédéric RINALDIDESCRIPTION------------ PrintPICT prints a PICT file, resource or the clipboard content with a prompt if desired.SYNTAX------- PrintPICT <filename|"clipboard"|"*">[,<R=res name or ID>] [,<page setup dialog>][,<print dialog>][<prompt>]PARAMETERS------------ <filename|"clipboard"|"*"> telles where the picture is coming from. Being a filename, it can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. "clipboard" will print the clipboard content. "*" stands for the current stack, when PICT resource printing is required. <R=res name or ID> defines the PICT resource to print. It can be its name or ID. This param is ignored when first is "clipboard". <page setup dialog> is a boolean allowing to have to page setup dialog to pop up. Default is FALSE. <print dialog> is a boolean allowing to have to printing dialog to pop up. Default is FALSE. <prompt> is a prompt string which will be printed at the bottom of page using Helvetica 12. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- Without dialog, the XCMD uses the previous settings for printing. Printing is centered in page.ERRORS-------If an error occurs, PrintPICT can return : "Error : Printing Error" "Error : Found no PICT in clipBoard" "Error : Resource not found" "Error : Not a PICT file" "Error : Out of memory" "Error : Couldn't read PICT file" "Error : Missing or empty parameter" "Error : Couln't load Scrap" "Error : Missing resource identifier" "Error : Out of memory" "Error : Printing aborted" "Error : Not a file" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error"HISTORY--------1.3 : 03/24/92• Pict resizing now keeps proportions1.2 : 03/09/92• Pict resized to fit in the printed page1.1 : 12/26/91• Fixed alias file bug under System 7.0.1• Printing is centered in page• Added prompt text printing• Added PICt resource and clipboard printing1.0 10/28/91• First release</text>
<script>on mouseUpif the version ≥ 2.1thenset itemDelimiter to colonget the addressput item 1 of it into ZoneNameput item 2 of it into NodeNameset itemDelimiter to commaend ifask "Node name :" with NodeNameif it is empty then exit mouseUpput it into NodeNameask "Zone name :" with ZoneNameif it is empty then exit mouseUpput it into ZoneNameanswer PPCList(NodeName,ZoneName)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text><span class="style1"> </span><span class="style3">PPCList 1.0</span><span class="style1"> </span><span class="style2">by Frédéric RINALDI</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> PPCList returns a list of all System 7.0 PPC aware applications of a node.</span><span class="style4">SYNTAX</span><span class="style1"> PPCList(<node name>[,<zone name|*>])</span><span class="style4">PARAMETERS</span><span class="style1"> <node name> is a string for the name of the node (defined in the Sharing Setup of all 7.0 Mac). <zone name|*> is optional, a string giving the zone name. Default is the zone of the caller ("*" parameter also). Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).</span><span class="style4">USING</span><span class="style1"> PPCList needs System 7.0 to work. The XFCN returns a return delimited list of all found applications. Each entry is like : <appl name 1>,<appl creator 1> Since a given application can have any user-defined name, the provided creator offers a more accurate information.</span><span class="style3">NOTE</span><span class="style1"> Some other externals can be helpfull : ATalkZones XFCN gives the list of available zones, DeviceList XFCN the list of "PPCToolbox" type nodes.</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, PPCList can return : "Error : Need System 7.0" "Error : Out of memory" "Error : Unknown node name" "Error : Unknown #xx" "Error : Missing or empty node name"</span></text>
<script>on mouseUpput NubusList() into cd fld 2show cd fld 2end mouseUp</script>
</part>
<part>
<id>3</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>127</left>
<top>107</top>
<right>386</right>
<bottom>214</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide meend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> NubusList 1.0 by Frédéric RINALDIDESCRIPTION------------ NubusList returns the lists of installes NuBus cards.SYNTAX------- NubusList()PARAMETERS------------ Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- NuBusList returns a return delimited list of laa installed NuBus cards. "Empty" is returned for each empty slot.ERRORS-------If an error occurs, NubusList can return : "Error : Couldn't access slot infos"HISTORY--------1.0 08/12/91</text>
</content>
<content>
<layer>card</layer>
<id>3</id>
<text>Micron XCEED Color 30ΓäóEmptyEmptyEmptyEmptyEmpty</text>
</content>
<name>NubusList 1.0</name>
<script>on opencardend opencardon closeCardhide cd fld 2end closeCard</script>
</card>
card_35576.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> Notification 1.0 by Frédéric RINALDIDESCRIPTION------------ Notification allows to invoke the Notification Manager under Multifinder.SYNTAX-------- NotificationPARAMETERS------------ Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- Must be used to alert the user when HyperCard is running in the background. Notification starts blinking a small HyperCard icon in place of the Apple of the Apple menu, and suspends the script execution. Activating HyperCard window stops blinking and restarts the script.</text>
<text> NameNewFile 1.0 by Frédéric RINALDIDESCRIPTION------------ NameNewFile provides a dialog allowing to name a new file and its destination (SFPutFile). Not anymore required with HC2.0 which includes this feature.SYNTAX------- NameNewFile([<default name>[,<prompt>]])PARAMETERS------------ <default name> is the file default name. <prompt> is the message appearing in the dialog. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the full pathame of named file. An empty string is returned if the user clicked on Cancel. Although working fine with both System 6 and System 7, FullSFPack is better suited for the latter, due in part to alias handling.HISTORY--------1.0 17/07/92• First public release</text>
</content>
<name></name>
<script></script>
</card>
card_35046.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpMousoidif the Result Γëá emptythen answer the Resultend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> Mousoid 1.1 by Frédéric RINALDIDESCRIPTION------------ Mousoid XCMD displays a windoid showing current mouse position.SYNTAX-------- Mousoid [<X>,<Y>]PARAMETERS------------ X and Y are optional integer, allowing to give coordinates where the window will appear on screen. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- Mousoid is stand alone, no linked resource is needed. Clicking on the zoom box displays more informations. Like any XWindow, Mousoid has properties that can be get and set thru HyperTalk. “properties of window "Mousoid"” will return an item list of all allowed properties. Properties cannot be set. Most usual are Loc and visible. So you can move the windoid on the screen, and make it invisible.If an error occurs, Mousoid can return : "Error : Unable to create XWindow" "Error : XWindows not implemented"</text>
</content>
<name>Mousoid 1.1</name>
<script>on opencardend opencardon closeCardif there is a window "Mousoid"then close window "Mousoid"end closeCard</script>
</card>
card_34723.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpput "Menu " & Q("Install") into card field "Cmd"IF cd fld "MenuDef1" Γëá emptythen put "," & "card field" && Q("MenuDef1") after cd fld "Cmd"IF cd fld "MenuDef2" Γëá emptythen put "," & "card field" && Q("MenuDef2") after cd fld "Cmd"DoMenuXCMDend mouseUp</script>
</part>
<part>
<id>6</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>177</left>
<top>162</top>
<right>248</right>
<bottom>182</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Insert</name>
<script>on mouseUpParseParam¬"New item :,Menu name :,Before item name : (* = end),Before subItem"¬& " name : (* = end)","New Item,MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>7</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>276</left>
<top>162</top>
<right>347</right>
<bottom>182</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Change</name>
<script>on mouseUpParseParam¬"New name :,Menu name :,Item name :,subItem name :",¬"New Item,MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>8</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>276</left>
<top>185</top>
<right>347</right>
<bottom>205</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Enable</name>
<script>on mouseUpParseParam¬"Menu name : (* = all),Item name : (* = all),subItem name : (* = all)",¬"MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>9</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>78</left>
<top>185</top>
<right>149</right>
<bottom>205</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Check</name>
<script>on mouseUpParseParam¬"Menu name :,Item name : (* = all),subItem name : (* = all)",¬"MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>10</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>78</left>
<top>208</top>
<right>149</right>
<bottom>228</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>List</name>
<script>on mouseUpParseParam¬"Menu name : (* = all),Item name : (* = all),subItem name : (* = all)",¬"MyMenu,Item 1,*"end mouseUp</script>
</part>
<part>
<id>11</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>177</left>
<top>208</top>
<right>248</right>
<bottom>228</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Find</name>
<script>on mouseUpParseParam¬"Item to find :","Item 1"end mouseUp</script>
</part>
<part>
<id>12</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>375</left>
<top>162</top>
<right>446</right>
<bottom>182</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Remove</name>
<script>on mouseUpParseParam¬"Menu name : (* = all),Item name : (* = all),subItem name : (* = all)",¬"MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>13</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>276</left>
<top>208</top>
<right>347</right>
<bottom>228</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>IsChecked</name>
<script>on mouseUpParseParam¬"Menu name :,Item name :,subItem name :",¬"MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>14</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>276</left>
<top>277</top>
<right>347</right>
<bottom>297</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Switch</name>
<script>on mouseUpglobal MenuBarGlobalif number of items of MenuBarGlobal ≠ 2then ParseParam"About name :,Help name :","About…,Help…"elseput "Menu" && Q("Switch") into cd fld "Cmd"DoMEnuXCMDend ifend mouseUp</script>
</part>
<part>
<id>15</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>375</left>
<top>208</top>
<right>446</right>
<bottom>228</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>IsEnabled</name>
<script>on mouseUpParseParam¬"Menu name :,Item name :,subItem name :",¬"MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>17</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>396</left>
<top>299</top>
<right>474</right>
<bottom>316</bottom>
</rect>
<style>rectangle</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>DoField</name>
<script>on mouseUpDoMenuXCMDend mouseUp</script>
</part>
<part>
<id>18</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>375</left>
<top>185</top>
<right>446</right>
<bottom>205</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Disable</name>
<script>on mouseUpParseParam¬"Menu name : (* = all),Item name : (* = all),subItem name : (* = all)",¬"MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>19</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>177</left>
<top>185</top>
<right>248</right>
<bottom>205</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Uncheck</name>
<script>on mouseUpParseParam¬"Menu name :,Item name : (* = all),subItem name : (* = all)",¬"MyMenu,Item 1,SubItem 1.1"end mouseUp</script>
</part>
<part>
<id>20</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>78</left>
<top>231</top>
<right>149</right>
<bottom>251</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>GetCmd</name>
<script>on mouseUpParseParam¬"Menu name :,Item name :,SubItem name :","MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>21</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>177</left>
<top>231</top>
<right>248</right>
<bottom>251</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>SetCmd</name>
<script>on mouseUpParseParam¬"Cmd char :,Menu name :,Item name :,SubItem name :",¬"H,MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>22</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>276</left>
<top>231</top>
<right>347</right>
<bottom>251</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>GetIcon</name>
<script>on mouseUpParseParam¬"Menu name :,Item name :,SubItem name :","MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>23</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>375</left>
<top>231</top>
<right>446</right>
<bottom>251</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>SetIcon</name>
<script>on mouseUpParseParam¬"ICON ID :,Menu name :,Item name :,SubItem name :",¬"257,MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>24</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>78</left>
<top>254</top>
<right>149</right>
<bottom>274</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>GetStyle</name>
<script>on mouseUpParseParam¬"Menu name :,Item name :,SubItem name :","MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>25</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>177</left>
<top>254</top>
<right>248</right>
<bottom>274</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>SetStyle</name>
<script>on mouseUpParseParam¬"Style : (N B I U O S C E),Menu name :,Item name :,SubItem name :",¬"BI,MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>26</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>276</left>
<top>254</top>
<right>347</right>
<bottom>274</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>GetSicn</name>
<script>on mouseUpParseParam¬"Menu name :,Item name :,SubItem name :","MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>27</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>375</left>
<top>254</top>
<right>446</right>
<bottom>274</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>SetSicn</name>
<script>on mouseUpParseParam¬"SICN ID :,Menu name :,Item name :,SubItem name :",¬"257,MyMenu,Item 1,Subitem 1.1"end mouseUp</script>
</part>
<part>
<id>28</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>16</left>
<top>305</top>
<right>58</right>
<bottom>342</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>29114</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Back</name>
<script>on mouseUpgo prevend mouseUp</script>
</part>
<part>
<id>34</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>42</left>
<top>76</top>
<right>426</right>
<bottom>148</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name>MenuDef2</name>
<script></script>
</part>
<part>
<id>35</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>42</left>
<top>4</top>
<right>428</right>
<bottom>149</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name>Result</name>
<script></script>
</part>
<part>
<id>36</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>37</left>
<top>0</top>
<right>49</right>
<bottom>12</bottom>
</rect>
<style>rectangle</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Box</name>
<script>on mouseUphide mehide cd fld "REsult"end mouseUp</script>
</part>
<part>
<id>37</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>177</left>
<top>277</top>
<right>248</right>
<bottom>297</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>Count</name>
<script>on mouseUpParseParam¬"Menu name : (* = all),Item name : (* = all),subItem name : (* = all)",¬"MyMenu,Item 1,*"end mouseUp</script>
</part>
<part>
<id>38</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>78</left>
<top>277</top>
<right>149</right>
<bottom>297</bottom>
</rect>
<style>shadow</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<name>?</name>
<script>on mouseUpParseParam¬"Command name :","Switch"end mouseUp</script>
<script>on ParseParam Prompt,Defaultput "Menu" && Q(short name of the target) into cd fld "Cmd"-- ask for correct number of parametersput "," into Cmdget emptyput 0 into Nbrepeat until (it = "*") or (Nb = number of items of Prompt)Ask item Nb + 1 of Prompt with item Nb + 1 of Defaultif the Result is "Cancel"then exit to HyperCardif it ≠ emptythen put quote & it & quote & "," after Cmdelse get "*"add 1 to Nbend repeatdelete last char of cmdput Cmd after cd fld "Cmd"DoMenuXCMDend ParseParam-- on DoMenuXCMDdo card field "Cmd"get the Resultif it ≠ emptythen answer itend DoMenuXCMDon DoMenuXCMD-- execute content of field "Cmd"do card field "Cmd"if the Result ≠ emptythenif value of word 2 of cd fld "Cmd" is in "List,Find"thenif first word of the Result ≠ "Error"thenput the Result into cd fld "Result"show btn "box"show cd fld "Result"else answer the Resultelse answer the Resultend ifend DoMenuXCMDfunction Q whatreturn quote & what & quoteend Qon closeCardhide btn "Box"hide cd fld "REsult"end closeCardon opencardend opencardon closeCardend closeCardon doMenu WhatMenu "Find",Whatif the Result ≠ emptythenanswer "This is a call to user menu “" & item 1 of the Result¬& "”"elseMenu "List","*"if first item of the Result is "File"thenif What is "About HyperCard..."then answer "This is a call for user About..."else if What is "Help…"then answer "This is a call for user" && Whatelse pass doMenuelse pass doMenuend ifend doMenu</script>
</card>
card_34161.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> Menu 2.1 -------- © Frédéric Rinaldi 1989,1990 Special thanks to Eric Ruff for his faithfully beta-testing. Menu 2.1 is the evolution of the well known MenuSet package. Plenty of enhancements have been added, in order to make Menu XCMD the most powerful and easy to use menu external ever used.Major enhancements are :• The whole set has been compiled in just one XCMD of 16 Kb (26 Kb for 11 externals before).• Each item or subitem name is now parsed, in order to remove special formatting codes. Thus, "<B^257Item!√" is same as "item" for the XCMD.• Special formatting codes can be used in any command parameter.• Menu, item, subitem names and Command chars are automatically capitalized to preserve Human Interface Guidelines• The syntax has been homogenized in all commands : Menu <command>,<menu>,<item>,<subitem> and when an additional param is needed, it is always in second place : Menu <command>,<special>,<menu>,<item>,<subitem> So, you need now to specify the whole path for a subitem, the XCMD doesn't search anymore in menu, then submenu list of items. This allows now to have many identical subitems in a same menu.• For any item or subitem param, you can use either its name, or its number.• Everything has been forecast to prevent suppression of user File menu or of its Quit item, and any modification out of guidelines of this item.• Install can now even install the File menu. In this case, it will add all the supplied items before the quit item.• Switch accepts now About and Help items that go under the Apple menu.• Many commands have been added to deal with item command, style, ICON or even SICN.• Extensive online help is available (you have to get the Result after calling to obtain the help text) : typing Menu "!" will return "Version 2.1, © Frederic RINALDI 1989,1990,1991" Typing Menu "?" will return "Type “Menu "?",<command>” to get help on a command" Typing Menu "?",<command> will return syntax help for that command. Typing Menu "=" will return "<error> if any OR <ICON|SICN id> OR <styles list> OR < shortcut char> OR <menus count>"• When "*" is allowed anywhere in the syntax, it means either "all" most of the time, or "end" for Insert command.• The menu definition can now use either return or semi-colon as separator.• A special hack has been provided to allow SICN inserting using special formatting chars (like ^xxx for an ICON).• Menu is fully international, giving the right "File" and "Quit" name when you call Switch.And, like for MenuSet 1.0 :• Menu 2.1 remains the only XCMD allowing to remove all HC menus except Apple, File & Edit menu. The File menu is fully customizable, and the Edit menu still allows Cut, Copy & Paste.• Even really powerful, it remains a simple to use as any HyperTalk statement. You will never have to deal with dummy menu IDs stored in global variables, just pass the names and it will do it for you.• Finally, like all of my externals, I will support it and regularly enhance it. HOW TO USE IT ------------- Global syntax of Menu XCMD is : Menu <command> [<param 1>...,<param N>] New, Menu, item and subitem parameters are always name strings, but you can even use a number for item (the order in menu) and subitem (the order in submenu). Any of these parameters, except Menu name can use the standard formatting chars recognized by the File Mgr, either at the beginning or at the end of the name string : ^XXX associates an ICON resource to the item !X puts a mark before the item <X sets the style of the item (B, I, O, U, S) NOTE : a bug in the Menu Mgr prevents using <E (extend) and <C (condense) in the string. Using one of these will cause the item to be ignored. Rather use SetStyle (see later). /X associates a command key to the item ( disables the itemand a special hack : ¨XXX associates an SICN resource to the item (¨ = option-u) The first command parameter will determine the action of Menu XCMD :SWITCH Menu "Switch"[,<About item>[,<help item>]] Hides all HC menus, leaving only the Apple, File & Edit menus. About & Help items will be placed under the Apple menu, File has only a Quit item and Edit keeps all working clipboard handling items. Called for the first times, Switch hides the HC menus. Called a second time, it restores the original menuBar.HINT : Whatever is the wording you choose for About item, HC 1.2.x sends doMenu "About HyperCard...". So do a correct test in your handler.REMOVE Menu "Remove",<menu|*>[,<item|*>[,<subitem|*>]] Removes one or all menus, items of a menu or subitems of a submenu. "*" stands for all when used in place of any parameter.INSTALL Menu "Install",<menu def>[…,<menu def>] Installs one or many (up to ten) user menus in one call. MenuDef can any container or literal string containing : "Menu name item 1, subitem 1.1,subitem 1.2 item 2 item 3, subitem 3.1"or :"Menu name;item 1, subitem 1.1,subitem 1.2;item 2;item 3, subitem 3.1"CHANGE Menu "Change",<new>,<menu>,<item>[,<subitem>] Changes the wording of any item or subitem. Using a comma separated list as new parameter, you can even add a submenu to any existing item, or with special formatting chars change its style, ICON, etc.INSERT Menu "Insert",<new>,<menu>,<before item|*>[,<before subitem|*>] Inserts a new item in a menu or a new subitem in a submenu. If you use "*" as a param, the new item will be inserted at the end.CHECK/UNCHECK Menu "Check",<menu>,<item|*>[,<subitem|*>] Menu "Uncheck",<menu>,<item|*>[,<subitem|*>] Checks or unchecks any item or subitem. "*" stands for all when used in place of any parameter, thus allowing to check all items in one call.ENABLE/DISABLE Menu "Enable",<menu>[,<item|*>[,<subitem|*>]] Menu "Disable",<menu>[,<item|*>[,<subitem|*>]] Enables or disables a whole menu, or any item or subitem. "*" stands for all when used in place of any parameter, thus allowing to set all items in one call.FIND Menu "Find",<item or subitem> Allow to find in which menu/submenu is any item or subitem. You have to get the Result after calling to obtain a list of matching menus. Each line of the returned comma separated list contains a menu name, sometimes the submenu name and the number of the item in the menu or submenu..LIST Menu "List",<menu|*>[,<item|*>[,<*>]] GetList returns a list of menus, items or subitems. Depending on the params you pass, List wiil return : Menu "List","*" ........................... comma separated list of menu names Menu "List","menu"....................... menuDef of menu (see Install) Menu "List","menu","*"................ list of items & subitems of menu Menu "List","menu","item"............ item & list of subitems of submenu Menu "List","menu","item","*"..... list of subitems of submenu You have to get the Result after calling to obtain the required list. HINT : if the first item of the returned menus list is "File", then you already called Switch command.COUNT Menu "Count",<menu|*>[,<item|*>[,<*>]] Count returns the number of user menus, items in a menu or subitems in a submenu. Last param must always be "*". You have to get the Result after calling to obtain the resulting number. If you ask for the number of menus after have called Switch, the File user menu will be one of the totalized menus. ISCHECKED/ISENABLED Menu "IsChecked",<menu>,<item>[,<subitem>] Menu "IsEnabled",<menu>[,<item>[,<subitem>]] Returns "true" or "false", allowing to know if the menu, item or subitem is checked or enables. You have to get the Result after calling to obtain the value.GETCMD/SETCMD Menu "GetCmd",<menu>,<item>[,<subitem>] Menu "SetCmd",<Cmd char>,<menu>,<item>[,<subitem>] Returns or sets the command char of any item or subitem. You have to get the Result after calling GetCmd to obtain the cmd char.GETICON/SETICON Menu "GetIcon",<menu>,<item>[,<subitem>] Menu "SetIcon",<ICON ID>,<menu>,<item>[,<subitem>] Returns or sets the associated ICON of any item or subitem. ICON ID must be greater than 256 but smaller than 512. You have to get the Result after calling GetIcon to obtain the ICON ID.GETSTYLE/SETSTYLE Menu "GetStyle",<menu>,<item>[,<subitem>] Menu "SetStyle",<style>,<menu>,<item>[,<subitem>] Returns or sets the style of any item or subitem. You have to get the Result after calling GetStyle to obtain the style string. Style is a one or many chars string which can contain :N (Normal), B (Bold), I (Italic), U (Underline), O (Outline), S (Shadow), C (Condense), E (Extend)GETSICN/SETSICN Menu "GetSicn",<menu>,<item>[,<subitem>] Menu "SetSicn",<SICN ID>,<menu>,<item>[,<subitem>] Returns or sets the associated SICN of any item or subitem. SICN ID must be greater than 256 but smaller than 512. You have to get the Result after calling GetSicn to obtain the SICN ID. ------------------Finally, don't worry : the XCMD is really bullet-proof, and numerous errors strings are available in the Result when something goes wrong : "Error : Menu not found" "Error : Bad ICON or SICN ID (257 ≤ x ≤ 511)" "Error : Item not found" "Error : Subitem not found" "Error : Missing parameter(s)" "Error : Useless parameter(s)" "Error : This item has no submenu" "Error : File menu cannot be removed" "Error : Quit item cannot be removed from File menu " "Error : UserLevel must be ≥ 4" "Error : Couldn't save current Edit menu" "Error : No more than 10 user menus" "Error : Bad menu name in param #x" "Error : Must call Switch before installing File menu" "Error : "*" not allowed in Change params" "Error : No more than one subMenu level" "Error : "*" not allowed in menu param for Insert" "Error : "*" not allowed in menu param for Check/Uncheck" "Error : Quit item of File menu cannot be checked" "Error : Whole File menu cannot be disabled" "Error : Quit item of File menu cannot be disabled" "Error : Out of Memory" "Error : "*" not allowed in IsEnabled params" "Error : "*" not allowed in IsChecked params" "Error : "*" not allowed in Get... params" "Error : "*" not allowed in Set... params" "Error : SetCmd not allowed for Quit items of File menu" "Error : SetCmd not allowed for items having a submenu" "Error : SetSicn not allowed for items having a submenu" "Error : Unknown command" "Error : Empty param #x" "Error : File menu resource not found" "Error : SubMenu not allowed for About item" "Error : SubMenu not allowed for Help item" "Error : Duplicate menu name"HISTORY-------2.1 8/15/91• Locked parameter block for HC 2.0• Changed submenus IDs to be HC 2.0 compatible• Cleaned the code• Added "=" online help param</text>
</content>
<name>Menu 2.1</name>
<script>on doMenu Whatif What is in "Item 1,Item 2,Item 3"then answer "You called menu “" & What & "”"else pass doMenuend doMenuon opencardend opencardon closeCardend closeCardon doMenu WhatMenu "Find",Whatif the Result ≠ emptythenanswer "This is a call to user menu “" & item 1 of the Result¬& "”"elseMenu "List","*"if first item of the Result is "File"thenif What is "About HyperCard..."then answer "This is a call for user About..."else if What is "Help…"then answer "This is a call for user" && Whatelse pass doMenuelse pass doMenuend ifend doMenu</script>
</card>
card_33564.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpput Switch(MacType()) into cd fld 3show cd fld 2show cd fld 3end mouseUp</script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>98</left>
<top>87</top>
<right>408</right>
<bottom>222</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>27</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>107</top>
<right>381</right>
<bottom>207</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> MacType 1.3 by Frédéric RINALDIDESCRIPTION------------ MacType is a XFCN that returns the Macintosh environment (including IIci, IIfx and Portable). And believe me, this one will be upgraded when new products will arise.SYNTAX------- MacType ( )PARAMETER----------- No parameter is needed. Meanwhile, standard help param "!", "?" and "=" can be passed to get online help (resp. copyright, syntax and output).USING----- The XFCN return a 6 items string, being respectively :CPU,System Vers,Processor,FPU(true|false),ColorQD(true|false),keyboardCPU can be :-----------UnknownMacintosh with 64K ROMMacintosh XLMacintosh 512K enhancedMacintosh PlusMacintosh SEMacintosh IIMacintosh IIxMacintosh IIcxMacintosh SE/30Macintosh PortableMacintosh IIciMacintosh IIfxMacintosh ClassicMacintosh LCMacintosh IIsiMacintosh Classic IIMacintosh PowerBook 100Macintosh PowerBook 140Macintosh PowerBook 170Macintosh Quadra 700Macintosh Quadra 900Processor can be :----------------UnknownMC68000MC68010MC68020MC68030MC68040Keyboard can be :----------------UnknownMacintosh keyboardMacintosh keyboard and keypadMacintosh Plus keyboardApple Extended keyboardApple Standard keyboardMacintosh Portable keyboardMacintosh Portable keyboard (ISO)Apple Standard keyboard (ISO)Apple Extended keyboard (ISO)Apple Elmer keyboardApple Elmer keyboard (ISO)Apple PowerBook keyboardApple PowerBook keyboard (ISO)If an error occurs, it will return return : "Error : Couldn't get SysEnvirons"TEST----- Just click on the button below. The script uses Switch XFCN, © Frédéric RINALDI.HISTORY--------1.3 9/23/91• Update for new CPUs• Added "=" online help param</text>
<script>on mouseUpglobal ListSelectExitput "get ListSelect (" & inQ(cd fld 1) & ",cd fld 2" into Cmdrepeat with i=3 to 7if hilite of btn ithenif cd fld i is in "return,tab,linefeed,formfeed"then put "," & cd fld i after Cmdelse put "," & inQ(cd fld i) after Cmdend ifend repeatput ")" after Cmdput cmddo Cmdput it into cd fld 8put ListSelectExit into cd fld "Exit"end mouseUpfunction inQ whatreturn quote & what & quoteend inQ</script>
</part>
<part>
<id>8</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>51</left>
<top>256</top>
<right>91</right>
<bottom>271</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>9</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>92</left>
<top>256</top>
<right>180</right>
<bottom>342</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>10</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>181</left>
<top>256</top>
<right>238</right>
<bottom>271</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>11</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>242</left>
<top>256</top>
<right>299</right>
<bottom>271</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>12</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>303</left>
<top>256</top>
<right>360</right>
<bottom>271</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>13</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>364</left>
<top>256</top>
<right>421</right>
<bottom>271</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>14</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>425</left>
<top>256</top>
<right>482</right>
<bottom>271</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>15</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>353</left>
<top>290</top>
<right>492</right>
<bottom>342</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>1</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>69</left>
<top>68</top>
<right>434</right>
<bottom>252</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>22</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>0</left>
<top>326</top>
<right>18</right>
<bottom>342</bottom>
</rect>
<style>checkbox</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script></script>
</part>
<part>
<id>17</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>200</left>
<top>272</top>
<right>218</right>
<bottom>288</bottom>
</rect>
<style>checkbox</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script></script>
</part>
<part>
<id>18</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>262</left>
<top>272</top>
<right>280</right>
<bottom>288</bottom>
</rect>
<style>checkbox</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script></script>
</part>
<part>
<id>19</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>323</left>
<top>272</top>
<right>341</right>
<bottom>288</bottom>
</rect>
<style>checkbox</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script></script>
</part>
<part>
<id>20</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>385</left>
<top>272</top>
<right>403</right>
<bottom>288</bottom>
</rect>
<style>checkbox</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script></script>
</part>
<part>
<id>21</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>447</left>
<top>272</top>
<right>465</right>
<bottom>288</bottom>
</rect>
<style>checkbox</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script></script>
</part>
<part>
<id>23</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>185</left>
<top>308</top>
<right>345</right>
<bottom>326</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Automatic Demo</name>
<script>on mouseUpglobal ListSelectExitput ListSelect("DIS",cd fld 2,"Geneva,9") into cd fld 8put ListSelectExit into cd fld "Exit"put ListSelect("1#","Here is a much longer string than before"&¬return&cd fld 2,"Selet item :",return,"My Button") into cd fld 8put ListSelectExit into cd fld "Exit"put ListSelect("*CON",cd fld 2,"Select the item you want from the list :"¬,"OK","","0,0","Monaco") into cd fld 8put ListSelectExit into cd fld "Exit"put ListSelect("*3#",cd fld 2,empty,return,"50,50,100,292",empty)¬into cd fld 8put ListSelectExit into cd fld "Exit"put ListSelect("ONE",cd fld 2,"User dialog",600) into cd fld 8put ListSelectExit into cd fld "Exit"put ListSelect("DIS#",cd fld 2,"Hello","100,150,101,151",empty,empty)¬into cd fld 8put ListSelectExit into cd fld "Exit"put ListSelect(3,cd fld 2,empty,"400,0,512,342") into cd fld 8put ListSelectExit into cd fld "Exit"end mouseUp</script>
</part>
<part>
<id>24</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>202</left>
<top>329</top>
<right>332</right>
<bottom>342</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Exit</name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ListSelect 4.1 by Frédéric RINALDIDESCRIPTION------------ ListSelect is an XFCN allowing to choose one or many items within a list appearing in a dialog on the screen. The XFCN is stand-alone, meaning that no extra resources (DLOG or DITL) are needed, but it can use personnalized resources created by the user. Many powerful caracteristics make it the developer's best friend :• 4 times quicker than DoList• The input list can be a comma or return separated list, without need to tell it to the XFCN• Allows to select an item by typing its first letter on the keyboard• Dialog's Font and Fontsize can be choosen• Sorted diplayed list on demand• Selection can be unique, multiple continuous ou multiple discontinuous• The output can return item names or numbers• The output list separator can be any char (comma, return, etc.)• Buttons' name can be modified by parameter passing• One ot both buttons can be hidden• Uses up and down arrows for moving• Allows multiple selection with Command + up and down arrows• Accepts Escape or Commande-Z to cancel, Enter, Return or double click to validate• Accepts Command-A to select all• Option + up or down arrow selects teh first or last list's element• The order of parameters 3 to 8 doesn't matter• Error messages are plenty and meaningfulMoreover, if you use automatic dialog creation :• The dialog's width is automatically adjusted to the longest list's element(except if you define a new bound rectangle)• The prompt message is optional, and its place in the dialog is recovered by the list if you leave it empty• The prompt message can be of any length, the statText item is automati-cally adjusted• If both buttons are hidden, their place is recovered too• If only one button is hidden, the other is automatically centered• Dialog's default positionning is centered on the card window, but you can set it at any location• Dialog's rectangle can be defined exactly• Buttons are automatically superposed if the dialog isn't width enough to hold then juxtaposed• If the user defined rectangle is too small, defaut minimum rectangle is usedSYNTAX-------ListSelect(<mode>,<liste> [,"s=#[,#]"][,"NoDoubleClick"][,prompt][,OK][,Cancel][,loc|Rect][,sep][,DLOG ID][font[,size]])PARAMETERS------------Mode"0" or "N[o]" : no selection"1" or "O[ne]" : unique selection"2" or "C[on]" : multiple continuous selection"3" or "D[is]" : multiple discontinuous selectionIf mode is preceeded by "*" char, the list will be sorted before diaplayed.If mode is followed by "#" char, the output list will contain items' numbers,and not their names. Remark that a sorted list returns item numbers of previous list's organization, so that you always can refer to it.List Any return or comma delimited list container.s=#[,#] An item string allowing to define the selected lines when the dialog pops. The list must be preceeded bty "s=". Default is 1. Ex : "s=2,5"NoDoubleClick With this param, the double-click in the list will have no action.Prompt, OK and Cancel Any string, an empty string will hide the corresponding item in the dialog.Loc|Rect X,Y are integer expressed in pixels corresponding to the topleft corner of the dialogor X,Y,X',Y' are integer expressed in pixels corresponding to the topleft and bottomright corners of the dialog. With an user dialog, only X and Y will be used.Sep Any character (return, tab, ",", etc.). The default one is comma.DLOG ID Identifier of the DLOG resource created by the user, and following exactly these rules: - minimum 4 items in the dialog - Item #1 = validation button - Item #2 = cancel button - Item #3 = statText containing "^0" - Item #4 = UserItem which size will define the list's size. Its height must be a multiple of the choosen Font's textHeight.Font[,Size] A string corresponding to an existing Font name. A second item in this string allows to set the desired Font size. Using "!", "?" and "=" as parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN return an item or an item list corresponding to the dialog's selection. This list will contain either names of items, either their numbers.Default item separator is Comma, but anything else can be choosen by call. It is possible to know the way the user leaved the dialog by testing the global variable ListSelectExit set by the XFCN. This one will contain the name of the button used to leave (or "tabKey" if the user typed it). This is particularly useful when using resource DLOG, any additional active button item beeing manageable from the script.If an error occurs, the ListSelect() will return : "Error : Bad Rectangle Parameter 1" "Error : Bad Rectangle Parameter 2" "Error : Bad Rectangle Parameter 3" "Error : Bad Rectangle Parameter 4" "Error : Missing Parameter(s)" "Error : Bad Mode Parameter" "Error : Bad Font size" "Error : Couldn't find DLOG Resource" "Error : Missing DITL Item(s)" "Error : Item #1 must be a button" "Error : Item #2 must be a button" "Error : Item #3 must be a statText" "Error : Item #4 must be a userItem" "Error : Out of memory"TEST----- Fill the different parameter fields below, and check the corresponding checkboxes if you want to use it.--------------------------------------------------------------------- REVISIONS HISTORYVERSION 4.1 9/23/91-----------• Fixed initial selection bug• Fixed bug appearing when first param xas wrong• Fixed bug appearing whith non-standard card sizeVERSION 4.0.1 8/22/91-----------• Added SetPort for SuperCard compatibilityVERSION 4.0 8/16/91-----------• Code completely cleaned• Better display speed• Added handling of extended keyboard keys to navigate in the list• Locked parameters for HC 2.0• Added "=" online help paramVERSION 3.9------------• Changed sort array indice• Added SetPort for SuperCard compatibilityVERSION 3.8------------• Internal enhancementVERSION 3.7------------• Changed the way of passing the listHandle to FilterProc.• Fixed the anticipated validation.• Added the selected lines param.VERSION 3.6------------• Fixed a bug appearing after validation of an empty selection.VERSION 3.5------------• Use notification manager for HC 2.0VERSION 3.4-----------• Tab, Esc, Return & Enter are always recognized, even with many key typingVERSION 3.3-----------• NoDoubleClick param added to avoid double clicking in the list.• Coordinates are now allowed for custom dialog.• XFCN doesn't consume any byte in memory anymore• New, quicker sort routineVERSION 3.2-----------• Now fully compatible with SuperCard & Plus.• Internal result building enhanced.VERSION 3.1-----------• Tiny bug in parameter parsing fixed• ListSelectExit contains "Error" if an error happenedVERSION 3.0-----------• Font and size choosing added• New mode parameters : ONE, CON, DIS for 1,2,3. Compatability with previous versions is preserved.• New mode NO (or 0) for a display without selection.• Optional sorting of the list implemented• Dialog's max width according to card• Largeur maximale du dialogue limité à la taille de la carte.• Added possibility to handle buttons in DLOG resources• Many aesthetic and functionnal changesVERSION 2.3-----------• You don't need anymore to wait the dialog before beginning to type• The XFCN sets now a global variable named "ListSelectExit" that you can test to know the way the user exit the list. This global can contain : "Validated" : the user double-clicked, cliked on OK, typed Return or Enter "Cancelled" : the user clicked on CANCEL, typed ESCAPE key or Cmd-Z "TabKey" : the user typed TAB key "Infos" : you passed an info parameter (see below)• You can use two new first parameters : "!" : the XFCN returns version number and copyright information "?": the XFCN returns syntax helpVERSION 2.2-----------• The XFCN uses now international resources for string comparison.• More than one character can be typed to select an items in the list.• Fixed a display bug when one or more empty items or lines start the list.VERSION 2.1-----------• No more DLOG et DITL resources needed, the XFCN creates them by itself.</text>
<script>on mouseUpif there is not a window "TheList"thenset cursor to watchListoid "TheList",cd fld "List","dis","Select it :","red,yellow"put the resultend ifend mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>417</left>
<top>256</top>
<right>512</right>
<bottom>342</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>List</name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text><span class="style1"> </span><span class="style3">Listoid 2.8</span><span class="style1"> </span><span class="style2">by Frédéric RINALDI and the faithfull help of Benoît WIDEMANN for WDEF and CDEF resources</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> Listoid XCMD displays a list in a windoid.</span><span class="style4">SYNTAX</span><span class="style1"> Listoid <WName>[,<List>[,<WStyle>][,<X,Y[,Z,T]>][,<NO|ONE|CON|DIS>] [,<selected line(s)>][<fontName[,size]>][<separator>][<prompt>] [,<alignment>][,"DontAllowReorg"]]</span><span class="style4">PARAMETERS</span><span class="style1"> Only first param is needed. Order of params 3 to 12 doesn't matter, since the XCMD is able to recognize them. </span><span class="style3">WName</span><span class="style1"> is a string giving the windoid name. Many windoids can be opened by using different names. </span><span class="style3">List</span><span class="style1"> is a return or comma delimited string that will be displayed. Listoid provides an automatic separator recognition. </span><span class="style3">WStyle</span><span class="style1"> is a string defining the window style. Allowed styles are : plain, zoom, roundRect, rect, shadow, windoid, windoidZoom, bigWindoid, bigWindoidZoom, Rinaldoid, RinaldoidZoom (Rinaldoid is the same as windoid, except that it displays the window title). All window styles are floating, except plain, zoom and roundRect. A windoid or Rinaldoid style window will have small scrollbars, while other styles will use standard size. Default is RinaldoidZoom if Rinaldoid WDEF resource is present, windoidZoom if not found. </span><span class="style3">X,Y[,Z,T]</span><span class="style1"> will be a point or a rect, and will define position and/or size of the windoid. Coordinated are card-relative. If omitted, windoid will appear with standard size at "0,10". </span><span class="style3">NO|ONE|CON|DIS</span><span class="style1"> defines the selection mode (no selection, one at a time, may but adjacent, many disjoint). Default is ONE. </span><span class="style3">selected line(s)</span><span class="style1"> is an integer or a comma separated list of integers. It defines the selected line(s) when the windoid appears. Default is 1, but 0 can be used to have no selection at start. </span><span class="style3">fontName[,size]</span><span class="style1"> is the name of font and its size to use. Default is Geneva 10. </span><span class="style3">separator</span><span class="style1"> is a single char allowing to specify a non-standard (≠ comma or return) delimiter char. </span><span class="style3">prompt</span><span class="style1"> is a message string which will appear in the windoid right over the list. If omitted, the list will fill the whole windoid. </span><span class="style3">alignment</span><span class="style1"> defines the text alignment in the list. It can be "left", "right" or "center". Default is left. </span><span class="style3">Color</span><span class="style1"> is a one or two items string giving the foreground and background color. For each item, allowed values are the standard colors (black, white, blue, red, yellow, cyan, magenta, green), or a three word string corresponding to red, green and blue values (100 5624 28652). Default is "black,white". </span><span class="style3">DontAllowReorg</span><span class="style1"> allows to deactivate the list reorganizing feature whith Option key held down (default is activated). Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).</span><span class="style4">USING</span><span class="style1"> Listoid is stand alone, no linked resource is needed. Meanwhile, this stack contains a WDEF and a CDEF resource that are recognized by the XCMD if present. The WDEF allows to have an enhanced windoid-type window displaying title, while the CDEF is useful to get nice-looking scroll arrows for small scroll bars. So, these resources are optional, and for aesthetic purpose only. If you copy them, their ID can be set to any value but don't change their name.</span><span class="style3">HINT</span><span class="style1"> : If you use a rect ot shadow style window, placing it on a card can simulate a smart HyperCard list field. If no rectangle param is used, the size of the window will be set accordingly to the longest string contained in the list.</span><span class="style3">HINT</span><span class="style1"> : the card script contains a "on keyDown" handler that allows selection of first matching item when typing a key in conjunction with option key. Moreover, while holding the option key down, the arrow keys allow to move in the list, return or enter to simulate a double-clic. It is now possible to send any string to search for to the window using :</span><span class="style5"> send "string" to window <WName></span><span class="style1"> If the string is found, it will be highlighted int the list. Look for "on keyDown" handler in the card script, type option+Key to try it.</span><span class="style3">OTHER HINT</span><span class="style1"> : Holding the optionKey when clicking on selected item(s) will allow list reorganization. Just drag the outlined cells over the list, and all of them will be moved right where the black line appears. Releasing the optionKey at any moment cancels the current move.</span><span class="style4">MESSAGES</span><span class="style1"></span><span class="style3">NOTE</span><span class="style1"> : in order to avoid HyperCard's confusion, existing quotes (") in WName param are automatically changed to single quote ('). </span><span class="style3">listoidSelect</span><span class="style1"> : sent when Double-clicking on item(s) in the list, followed by the clicked word(s) and the Listoid name and ID (the latter only with HC 2.1). This message can be trapped using a handler :</span><span class="style5"> on ListoidSelect What,WName,WID if WName is "MyList" and What is ... end ListoidSelect</span><span class="style1"> </span><span class="style3">openListoid</span><span class="style1"> : sent when a windoid is opened, followed by the windoid name and ID (the latter only with HC 2.1). This allows to define window properties before it is shown, since the message can be trapped using a handler :</span><span class="style5"> on openListoid WName,WID if WName is "MyWindow" then... end openListoid</span><span class="style1"> </span><span class="style3">closeListoid</span><span class="style1"> : sent when a windoid is closed, followed by the windoid name and ID (the latter only with HC 2.1). This message can be trapped using a handler :</span><span class="style5"> on closeListoid WName,WID if WName is "MyWindow" then... end closeListoid</span><span class="style1"> </span><span class="style3">clickInListoid</span><span class="style1"> : sent when clicking and releaseing button in the windoid (mouseUp), followed by the Listoid name and ID (the latter only with HC 2.1). This message can be trapped using a handler :</span><span class="style5"> on clickInListoid WName,WID if WName is "MyList"... end clickInListoid</span><span class="style1"> </span><span class="style3">clickInPrompt</span><span class="style1"> : sent when clicking on the prompt if any (mouseDown), followed by the Listoid name and ID (the latter only with HC 2.1). This message can be trapped using a handler :</span><span class="style5"> on clickInPrompt WName,WID if WName is "MyList"... end clickInPrompt</span><span class="style1"></span><span class="style4">PROPERTIES</span><span class="style1"> Like any XWindow, Listoid has properties that can be get and set thru HyperTalk. </span><span class="style5"> properties of window "Infoid"</span><span class="style1">will return an item list of all allowed properties : • loc : windoid's position according to card • visible : windoid's visibility • text : windoid's text • rect : windoid's position and size according to card • selectedLine : line number(s) selected • selectionMode : selection mode (NO|ONE|CON|DIS) • selectedText : list of selected items (</span><span class="style3">get</span><span class="style1"> only) • prompt : prompt msg (can be changed only if already existing) • messages : list of windoid's messages</span><span class="style3">NOTE</span><span class="style1"> When using the "set text" property, the XCMD scans again the input text to find any new separator used, except if this one has been forced in the parameters of the original call.</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, external can return : "Error : Bad background color" "Error : Missing or empty window name" "Error : Duplicate window name" "Error : Empty parameter" "Error : Color defined twice" "Error : Bad Font size" "Error : Out of memory" "Error : This property cannot be set" "Error : Bad rectangle param" "Error : Bad selection mode param" "Error : Unknown property" "Error : Not found"</span><span class="style4">HISTORY</span><span class="style1"></span><span class="style3">2.8</span><span class="style1"> : </span><span class="style3">05/21/92</span><span class="style1">• Added </span><span class="style2">owner </span><span class="style1">property</span><span class="style2"></span><span class="style1"></span><span class="style3">2.7</span><span class="style1"> : </span><span class="style3">05/04/92</span><span class="style1">• Added </span><span class="style2">clickInPrompt</span><span class="style1"> message• Changed </span><span class="style2">controlKey</span><span class="style1"> handler for </span><span class="style2">keyDown</span><span class="style1"> in card script</span><span class="style3">2.6</span><span class="style1"> : </span><span class="style3">04/27/92</span><span class="style1">• Fixed bug appearing on Macs without ColorQD</span><span class="style3">2.5</span><span class="style1"> : </span><span class="style3">04/18/92</span><span class="style1">• Properties now return an error msg with incorrect param• </span><span class="style2">ClickInListoid</span><span class="style1"> sent now only with clicks inside the list• Added </span><span class="style2">messages </span><span class="style1">property• ID of window now returned along with all sent messages• Added "Error : Not found" when sent string is not found• Added color support</span><span class="style3">2.4</span><span class="style1"> : </span><span class="style3">03/07/92</span><span class="style1">• Handling of parameter defined separator when using "set text"</span><span class="style3">2.3</span><span class="style1"> : </span><span class="style3">03/06/92</span><span class="style1">• Fixed default window position• Check for new separator with "set text of window…"• Fixed property "set text of window…"</span><span class="style3">2.2</span><span class="style1"> : </span><span class="style3">02/23/92</span><span class="style1">• Fixed selectedLine property result when no current selection• Fixed separator parser• No more CURS resource creation• Added text alignment param</span><span class="style3">2.1</span><span class="style1"> : </span><span class="style3">10/10/91</span><span class="style1">• Fixed searching routine for multi-words strings• Enhanced handling of ghost cursor• Space recognized as default separator</span><span class="style3">2.0</span><span class="style1"> : </span><span class="style3">8/15/91</span><span class="style1">• Change zoom behaviour to resize window according to screen height• CURS resource created only if "DontAllowReorg" param not passed</span><span class="style3">1.9</span><span class="style1"> : </span><span class="style3">8/14/91</span><span class="style1">• Added "DontAllowReorg" parameter• Fixed CURS resource adding• Double quote always replaced by single quote in the window name• Added "=" online help parameter• Added window ID (for HC 2.1 only) passed along with "OpenListoid" and "CloseListoid" messages</span><span class="style3">1.8</span><span class="style1"> : </span><span class="style3">6/14/91</span><span class="style1">• Fixed font changing with lock Screen (bug due to HC itself)• Fixed cell size calculation• ClicInListoid renamed clic</span><span class="style4">k</span><span class="style1">InListoid• clickInListoid message now sent after selection is done• Added items moving feature• Added prompt in the windoid• Added separator and prompt params• Added prompt property</span><span class="style3">1.7</span><span class="style1"> :• Fixed windoid show/hide when switching• Fixed search bug with empty cells• Unsuccessfull search deselects all cells• Fixed CellRect when rect param passed• Added clicInListoid message• Added selectedText property• Fixed non-floating windows activation</span><span class="style3">1.6</span><span class="style1"> :• Added arrow key moving and validation</span><span class="style3">1.5</span><span class="style1"> :• changed inContent cursor</span><span class="style3">1.4</span><span class="style1"> :• Added window style parameter• Added "openListoid" message• Added searching capabilities• Added quote filter for ListoidSelect message parameters• Fixed rect/globalRect property to not show window if invisible• Added support of Rinaldoid WDEF and CDEF</span><span class="style3">1.3</span><span class="style1"> :• Added font name and size parameter</span><span class="style3">1.1</span><span class="style1"> :• Window title is now displayed• Added window name parameter• Window name is passed along with ListoidSelect message.• Added closeListoid message</span></text>
<script>on ListoidSelect What,Whereput Where & " : " & Whatwait 1 secend ListoidSelecton closeListoid Whichput "You closed windoid “" & Which & "”"end closeListoidon keyDown Whatif there is a window "TheList" and the optionKey is downthenget offset(What,"æß©∂êƒfiÌîÏȬµ~œπ‡®Ò†º◊‹≈ÚÂ")if it ≠ 0then put numToChar(it + 64) into Whatsend What to window "TheList"else pass keyDownend keyDownon clickInListoid Whichput "You clicked in windoid “" & Which & "”"end clickInListoid</script>
</card>
card_32059.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpset cursor to watchlsrepeat with i=2 to 5show cd fld ishow btn iend repeatshow btn 6ulsend mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>113</left>
<top>66</top>
<right>413</right>
<bottom>320</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUpHideAllend MouseUp</script>
</part>
<part>
<id>18</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>138</left>
<top>91</top>
<right>389</right>
<bottom>109</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>21</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>138</left>
<top>170</top>
<right>389</right>
<bottom>188</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>22</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>138</left>
<top>234</top>
<right>389</right>
<bottom>252</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>24</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>167</left>
<top>125</top>
<right>217</right>
<bottom>147</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>AND</name>
<script>on mouseUpsetBtnend mouseUp</script>
</part>
<part>
<id>25</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>216</left>
<top>125</top>
<right>266</right>
<bottom>147</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>OR</name>
<script>on mouseUpsetBtnend mouseUp</script>
</part>
<part>
<id>26</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>265</left>
<top>125</top>
<right>315</right>
<bottom>147</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>XOR</name>
<script>on mouseUpsetBtnend mouseUp</script>
</part>
<part>
<id>27</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>314</left>
<top>125</top>
<right>364</right>
<bottom>147</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <true /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>NOT</name>
<script>on mouseUpsetBtnend mouseUp</script>
</part>
<part>
<id>28</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>213</left>
<top>277</top>
<right>307</right>
<bottom>299</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Do it !!</name>
<script>on mouseUprepeat with i=2 to 5if hilite of btn ithenput short name of btn i into Operatorexit repeatend ifend repeatget ListLogic(cd fld 3,Operator,cd fld 4)if first word of it is "Error"then answer itelse put it into cd fld 5end mouseUp</script>
</part>
<part>
<id>29</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>451</left>
<top>5</top>
<right>506</right>
<bottom>55</bottom>
</rect>
<style>rectangle</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>27056</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>X-Index</name>
<script>on mouseUpdoIndexend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ListLogic 1.4 by Frédéric RINALDIDESCRIPTION------------ ListLogic XFCN allows logical comparison of two lists.SYNTAX-------- ListLogic(<list 1>,<AND|OR|XOR|NOT>,<List 2>[,<case sens>])PARAMETERS------------ List 1 and 2 can be items or lines lists. Second parameter defines the logical test. For example, with "1,2,3" and "3,4,5" as lists, returned values will be : AND : "3" entries in both list 1 AND list 2 OR : "1,2,3,4,5" entries in list 1 OR list 2 XOR : "1,2,4,5" entries in list 1 OR list 2, but not in both NOT : "1,2" entries in list 1 but NOT in list 2 Case sens. can be true or false, and defines if the search must be case sensitive (true) or not (false). Default is false. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- The XFCN returns a list of logically compared values, using the same list separator as input. The comparison is not case sensitive.If an error occurs, ListLogic can return : "Error : Couln't build result" "Error : Missing parameter(s)" "Error : Operator must be AND|OR|XOR|NOT" "Error : Both lists must have same separator"HISTORY--------1.4 03/17/92• Enhanced delimiter detection• Use of the Script Mgr to get the word boundaries1.3• Fixed bug with empty lists1.2• Now accepts empty list as parameter• fixed floating pointer bug1.1• Added case sensitive param</text>
</content>
<content>
<layer>card</layer>
<id>16</id>
<text>List 1 :List 2 :Result :</text>
</content>
<content>
<layer>card</layer>
<id>18</id>
<text>1,2,3,toto,titi</text>
</content>
<content>
<layer>card</layer>
<id>21</id>
<text>3,4,5,titi,tutu</text>
</content>
<content>
<layer>card</layer>
<id>22</id>
<text>1,2,toto</text>
</content>
<name></name>
<script>on SetBtnrepeat with i=2 to 5set hilite of btn i to (number of the target = i)end repeatend SetBtn</script>
</card>
card_31662.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUplsshow btn 2show cd fld 2show cd fld 3put LineCount("cd fld 3")end mouseUp</script>
</part>
<part>
<id>8</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>131</left>
<top>9</top>
<right>377</right>
<bottom>273</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>bold</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>11</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>135</left>
<top>13</top>
<right>148</right>
<bottom>26</bottom>
</rect>
<style>rectangle</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script>on mouseUplshide btn 2hide cd fld 2hide cd fld 3end mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>156</left>
<top>18</top>
<right>354</right>
<bottom>262</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> LineCount 1.7 by Frédéric RINALDIDESCRIPTION------------ LineCount is a XFCN allowing to know the real number of lines of a field, including all wrapped lines.SYNTAXE-------- LineCount ("<field descriptor>")PARAMETERS------------ field descriptor can be any valid descriptor (name, number or ID), and must be enclosed in quotes (like "cd fld 1" or "bg fld id 52") Using "!", "?" and "=" as parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the number of lines of the field. If an error occurs, it can return : "Error : Bad field descriptor" "Error : No such Font" "Error : Bad text style[s]"HISTORY--------1.7 8/26/91• Fixed memory management bug1.6 8/16/91• Fixed bug and added SuperCard compatibility• Change field rect calculation mode for HC 1.2.1.5 7/10/91• Fixed bug and added SuperCard compatibility1.4 6/13/91• Updated to match multi-styled fields of HC 2.0</text>
</content>
<content>
<layer>card</layer>
<id>8</id>
<text></text>
</content>
<content>
<layer>card</layer>
<id>16</id>
<text>This XFCN is FreeWare,allowing unlimitted use in any non-commercial stack. You just need in this case to mention the author's name in the stack.Any commercial use must be licenced and aknowledged by the author.</text>
</content>
<name>LineCount 1.7</name>
<script>on opencardend opencardon closeCardlshide btn 2hide cd fld 2hide cd fld 3end closeCard</script>
</card>
card_31115.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "Resource type :" with "XCMD"if it is empty then exit mouseUpput it into ResTypeask "Resource name or ID :"if it is empty then exit mouseUpput it into ResNameget filePath(empty,"Delete resource from which file :")if it is empty then exit mouseUpKillRes ResType,ResName,itif the Result Γëá emptythen answer the Resultend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> KillRes 1.2 by Frédéric RINALDIDESCRIPTION------------ KillRes allows to delete a resource in a file.SYNTAX-------- KillRes <res type>,<res name or ID>[,<file name>]PARAMETERS------------ <res type> is the resource type, always a 4 chars string. <res name or ID> is the name or ID of the resource to delete. <file name> is optional, and the full pathname of the file containing the resource. If not provided, the current stack will be used. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING-----If an error occurs, KillRes can return : "Error : Missing parameter(s)" "Error : Incorrect resource type" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : I/O Error" "Error : Volume is locked" "Error : Unknown #xx" "Error : Resource not found"HISTORY-------1.2 :• Fixed a bug arising when deleting resource from current stackThis stack uses FilePath XFCN, © 1889,1990 Apple Computer Inc.</text>
<script>on mouseUpask "object :" with "cd btn 1"if it Γëá emptythen answer IsObject(it)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> IsObject 1.0 © Frédéric RINALDIDESCRIPTION------------ IsObject is a XFCN allowing to test the existence of an HyperCard object.SYNTAX------- IsObject (<object descriptor>)PARAMETERS------------ The object descriptor can be any valid HyperTalk descriptor (number, name or id). If a name is used, it must me enclosed in quotes : IsObject ("card button" && quote & "My button" & quote) Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- The XFCN returns "true" if the object exists, "false" if not. If an error occurs, it can return : "Error : Missing parameter"</text>
<text> IsFolder 1.0 © Frédéric RINALDIDESCRIPTION------------ IsFile is a XFCN allowing to test the existence of a folder on a volume.SYNTAX------- IsFolder (<folder pathName>)PARAMETERS------------ The pathname is a string that can end or not with a colon. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- The XFCN returns "true" if the folder exists, "false" if not. If an error occurs, it can return : "Error : Volume not found" "Error : Unknown #xx" "Error : Missing parameter" "Error : Not a directory"</text>
<script>on mouseUpget FilePath(empty,"File to test :")if it Γëá emptythen answer IsFinderLocked(it)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> IsFinderLocked 1.1 by Frédéric RINALDIDESCRIPTION------------ IsFinderLocked XFCN allows to know if a file is locked or not (Finder info ckeckbox).SYNTAX-------- IsFinderLocked <file path or name>[,"DontResolveAlias"]PARAMETERS------------ <file path or name> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING-----If an error occurs, IsFinderLocked can return : "Error : Not a file "Error : Not a folder "Error : Alias file not supported "Error : Volume not found "Error : Bad Name "Error : File not found "Error : Folder not found "Error : File is busy "Error : I/O Error "Error : Folder is full "Error : Volume is locked "Error : No resource fork "Error : Duplicate file/folder name "Error : Moving whole volume not allowed "Error : Not an AppleShare volume "Error : AppleShare insufficient privileges "Error : Missing or empty parameter" "Error : Second param can only be "DontResolveAlias""HISTORY-------1.1 :• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online helpThis stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc.)</text>
<script>on mouseUpask "Name or PathName :"if it Γëá emptythen answer IsFile(it)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> IsFile 1.0 © Frédéric RINALDIDESCRIPTION------------ IsFile is a XFCN allowing to test the existence of a file on a volume.SYNTAX------- IsFile (<file name or pathName>)PARAMETERS------------ The parameter can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- The XFCN returns "true" if the file exists, "false" if not. If an error occurs, it can return : "Error : Volume not found" "Error : Bad Name" "Error : Directory not found" "Error : I/O Error" "Error : Unknown #xx" "Error : Missing parameter"</text>
<script>on mouseUpInfoidif the Result Γëá emptythen answer the Resultend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> Infoid 1.1 by Frédéric RINALDIDESCRIPTION------------ Infoid XCMD displays a windoid showing current objects attributes.SYNTAX-------- Infoid [<X>,<Y>]PARAMETERS------------ X and Y are optional integer, allowing to give coordinates where the window will appear on screen. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- Infoid is stand alone, no linked resource is needed. To activate it, you'll have to put a short handler in your Home stack : on mouseEnter if "Infoid" is in windows() then send "Update" to window "Infoid" end mouseEnter Clicking on the zoom box displays more informations. Like any XWindow, Infoid has properties that can be get and set thru HyperTalk. “properties of window "Infoid"” will return an item list of all allowed properties. Properties cannot be set. Most usual are Loc and visible. So you can move the windoid on the screen, and make it invisible.If an error occurs, Infoid can return : "Error : Unable to create XWindow" "Error : XWindows not implemented"</text>
</content>
<name>Infoid 1.1</name>
<script>on opencardend opencardon closeCardif there is a window "Infoid"then close window "Infoid"end closeCardon mouseEnterif there is a window "Infoid"then send "Update" to window "Infoid"end mouseEnter</script>
</card>
card_27982.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpget FilePath("APPL","Application to get icons from :")if it Γëá emptythenput it into TheFileset cursor to watchask "What types :" with DocTypes(TheFile)put it into Typesset cursor to watchICNToICON TheFile,itif first word of the Result is "Error"then answer the Resultelse answer "ICON(s) copied to this stack"end ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ICNToICON 1.6 by Frédéric RINALDIDESCRIPTION------------ ICNToICON XCMD gets ICN#(s) from any file and copies it (them) as ICON into another file.SYNTAX-------- ICNToICON <file pathname>[,<type 1[…,type N]>[,<dest file>]]PARAMETERS------------ <file pathname> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <type 1[…,type N]> is an item list of types for which the ICN# has to be got. If empty, the main ICN# is copied. <dest file> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. If omited, the destination will be the current stack. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XCMD return in the Result an item list of copied ICON(s) IDs. An empty item in it means that the corresponding type in type list parameter was not found in the file, or that its ICN# was missing. The copied ICON(s) are automatically named by catenating the Creator of file and Type for each.If an error occurs, ICNToICON can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : XXXX entries not found in BNDL" "Error : Missing or empty file name" "Error : Could't open prov file" "Error : Couln't get BNDL resource" "Error : Found no FREF resource" "Error : Bad file type in list" "Error : AddResource failed" "Error : WriteResource failed" "Error : UpdateResFile failed"HISTORY-------1.6 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help1.5:• BNDL access change to handle particular files.1.4 : • fixed a bug arising whith files having an icorrect BNDL resourceThis stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc.) and DocTypes XFCN (© Frédéric RINALDI).</text>
</content>
<name>ICNToICON 1.6</name>
<script></script>
</card>
card_54677.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "Search in text fld for :" with "the"if it is empty then exit mouseUpanswer HowMany(it,cd fld 1) && "occurrences found"end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> HowMany 1.1 by Frédéric RINALDIDESCRIPTION------------ HowMany returns the number of occurrences of a pattern string within a target string.SYNTAX------- HowMany(<pattern>,<target>)PARAMETERS------------- <pattern> is the string to search for. <target> is the string to search in. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the number found as an integer. Seraching is cas insensitive.ERRORS-------If an error occurs, HowMany can return : "Error : Missing or empty parameter"HISTORY--------1.0 17/07/92• First public release</text>
</content>
<name></name>
<script></script>
</card>
card_27500.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpglobal GlobalVarsList,GlobalVar1,GlobalVar2set loc of window "Variable Watcher" to "0,18"set rect of window "Variable Watcher" to "0,0,300,60"set hbarloc of window "variable watcher" to 58show variable watcherput "Saving current global variables"SaveCurrentGlobalshide variable watchershow variable watcherwait 2 secsput "Creating global variables ΓÇ£GlobalVar1ΓÇ¥ et ΓÇ£GlobalVar2ΓÇ¥"put "Something" into GlobalVar1put "Something else" into GlobalVar2hide variable watchershow variable watcherwait 2 secsput "Purging global variables ΓÇ£GlobalVar1ΓÇ¥ et ΓÇ£GlobalVar2ΓÇ¥"ClearStackGLobalshide variable watchershow variable watcherwait 2 secshide variable watcherput emptyhide msgend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GlobalMaster stack by Frédéric RINALDI This stack contains two XCMDs which allow to easily purge all global variables created by the stack. They work only with HyperCard 2.0. SaveCurrentGlobals 1.0DESCRIPTION------------ SaveCurrentGlobals saves the list of current active globals.SYNTAX------- SaveCurrentGlobalsPARAMETERS------------ Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- SaveCurrentGlobals must appear in the "on openStack" handler before any global variable setting. The XCMD creates a global named GlobalVarsList which will be used later by ClearStackGlobals XCMD.If an error occurs, SaveCurrentGlobals can return : "Error : Out of Memory" ClearStackGlobals 1.0DESCRIPTION------------ ClearStackGlobals purges all global variables created since call to SaveStackGlobals.SYNTAX-------- ClearStackGlobalsPARAMETERS------------ Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING------ ClearStackGlobals will generally be located in the "on closeStack" handler. The XCMD uses the global variable GlobalVarsList created earlier by SaveCurrentGlobals to find globals that must be cleared.</text>
<script>on mouseUpanswer "List all :" with "TRUE" or "FALSE"answer GlobalList(it)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GlobalList 1.1 by Frédéric RINALDIDESCRIPTION------------ GlobalList returns the list of available global variables.SYNTAX-------- GlobalList([<ListAll>])PARAMETERS------------ <ListAll> is a boolean, making the returned list contain all global variables available (TRUE), or only those not handled by HyperCard or the Home stack (FALSE). Default is FALSE. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- The XFCN return an itels delimited list of variable names.If an error occurs, GlobalList can return : "Error : Out of Memory" "Error : Parameter must be true or false"VERSIONS---------1.1 :• Fixed returned value when no globals are defined</text>
<script>on mouseUpask "Volume name :"if it Γëá emptythenput GetVInfo(it) into Tempif first word of Temp is "Error"thenbeepanswer Tempelseput switch(Temp) into cd fld 3show cd fld 2show cd fld 3end ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GetVInfo 1.0 by Frédéric RINALDIDESCRIPTION------------ GetVInfo returns informations about a volume.SYNTAX------- GetVInfo <volume name or volume alias pathname>PARAMETERS------------ <volume name or volume alias pathname> can be a volume name or full path to a volume alias. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns a 12 items list containing : 1) total space (in Kb) 2) free space (in Kb) 3) number of files 4) number of folders 5) locked (true|false) 6) ejectable (true|false) 7) creation date (short format) 8) creation time 9) modification date (short format)10) modification time11) backup date (short format, only if existing)12) backup time (only if existing)ERRORS-------If an error occurs, GetVInfo can return : "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)"HISTORY--------1.0 : 02/23/92• First release</text>
</content>
<content>
<layer>card</layer>
<id>29</id>
<text>total spacefree spacenumber of filesnumber of folderslockedejectablecreation datecreation timemodification datemodification timebackup datebackup time</text>
<text> GetSysFolder 1.0 by Frédéric RINALDIDESCRIPTION------------ GetSysFolder returns the pathName of the current System folder.SYNTAX-------- GetSysFolder()PARAMETERS------------ Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).</text>
<text> GetPassword 1.3 © Frédéric RINALDIDESCRIPTION------------ GetPassword is a XFCN allowing to type a hidden password in a dialog.SYNTAX------- GetPassword ([<prompt>])PARAMETERS------------ Prompt is a string that will appear in the dialog. Default value is : "Please enter password :" Using "!" and "?" parameter will return an online help (resp. copyright and syntax).USING----- The returned value is an integer value corresponding to the encrypted input. The dialog is centered on the card, and typing is hidden with bullets in it. Almost one char must be typed before validating. An empty string is returned if cancelled.If an error occurs, this value can be : "Error : Ask dialog not found"HISTORY--------1.3 : 09/09/91• Fixed to be SuperCard compatible1.1 :• Use notification manager for HC 2.0</text>
<script>on mouseUpget GetMode()if first word of it is "Error"then answer itelseput it into cd fld 2show cd fld 2end ifend mouseUp</script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>167</left>
<top>92</top>
<right>332</right>
<bottom>231</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide meend mouseUP</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GetMode 1.3 by Frédéric RINALDIDESCRIPTION------------ GetMode is an XFCN allowing to get the screen(s)' video mode and depth.SYNTAX------- GetMode ( )PARAMETERS------------ No parameter needed, but using "!" and "?" parameter will return an online help (resp. copyright and syntax).USING----- The XFCN returns a one or many lines string, each one corresponding to one available screen. Each line contains a 5 or 7 items (depending on the System in use) : <B|C>,<1|2|4|8|32>,<screen nb>,<B|C>,<1|2|4|8|32>,<width>,<height> +---------------+----------+-----------------+--------------+ current video maximum values screen size (only with System 6.0.5)If an error occurs, the XFCN can return : "Error : Couln't get SysEnvirons" "Error : Color QuickDraw not found"</text>
<script>on mouseUpask "ΓÇ£Creator,TypeΓÇ¥ or pathName :" with "WILD,STAK"if it is empty then exit mouseUpGetIcon itget the resultif first word of it is "Error"then beepanswer itend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GetIcon 1.0 by Frédéric RINALDIDESCRIPTION------------ GetIcon allows to add in teh current stack an ICON resource coming from the Desktop file. It requires System 7.SYNTAX------- GetTheIcon(<file "creator,type" or pathName>[,<volume name>])PARAMETERS------------ <file "creator,type" or pathName> can be a two items string built with file creator & type, or the full pathname of a file. <volume name> is optional, and allows to define the volume from where the ICON has to come from. Default scans all mounted volumes. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING------ The XCMD creates an ICON resource in the current stack with random ID and name built with file creator & type. If the resource already exists, the XCMD simply returns its info without creating another one. If the icon is found, the XCMD return a two items string with resource name & ID.ERRORS-------If an error occurs, the XCMD can return : "Error : GetIcon requires System 7" "Error : Missing or empty parameter" "Error : Out of memory" "Error : Couldn't add resource" "Error : Entry not found" "Error : Not a file" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : I/O Error" "Error : Volume is full" "Error : Volume is locked" "Error : Couln't create copy buffer"HISTORY--------1.0 03/13/92• First release</text>
</content>
<name></name>
<script></script>
</card>
card_24896.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpget item 2 of MacType()delete last char of itdelete last char of itif it < 7.0then put 2 into FNbelse put 3 into FNbget FilePath(empty,"File for infos :")if it Γëá emptythenput GetFInfo(it) into Tempget the Resultif it Γëá emptythenbeepanswer itelseput switch(Temp) into cd fld 4show cd fld FNbshow cd fld 4end ifend ifend mouseUp</script>
</part>
<part>
<id>29</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>165</left>
<top>3</top>
<right>337</right>
<bottom>289</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>bold</textStyle>
<textHeight>11</textHeight>
<name></name>
<script>on mouseUphideAllend mouseUp</script>
</part>
<part>
<id>34</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>165</left>
<top>3</top>
<right>337</right>
<bottom>289</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>bold</textStyle>
<textHeight>11</textHeight>
<name></name>
<script>on mouseUphideAllend mouseUp</script>
</part>
<part>
<id>35</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>258</left>
<top>3</top>
<right>335</right>
<bottom>289</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>11</textHeight>
<name></name>
<script>on mouseUphideAllend mouseUp</script>
</part>
<part>
<id>37</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>451</left>
<top>5</top>
<right>506</right>
<bottom>55</bottom>
</rect>
<style>rectangle</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>27056</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>X-Index</name>
<script>on mouseUpdoIndexend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GetFInfo 1.1 © Frédéric RINALDIDESCRIPTION------------ GetFInfo is an XFCN returning a list of Finder informations for a file.SYNTAX------- GetFileInfo <file path or name>[,"DontResolveAlias"]PARAMETERS------------ <file path or name> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The returned list contains the following 23 items : 1) type 2) creator 3) creation date (short format) 4) creation time 5) modification date (short format) 6) modification time 7) total size in bytes 8) data fork size in bytes 9) resource fork size in bytesthen 16 booleans values corresponding to the file flags (depending on System version): System 6.0 System 7.010) onDesk on Desk11) bFOwnAppl color 112) réservé color 213) réservé color 314) bfNever (never switch launch) colorReserved15) bfAlways (always switch launch) requiresSwitchLaunch16) shareable application isShared17) réservé hasNoINITs18) Inited hasBeenInited19) Changed Reserved20) Busy hasCustomIcon21) NoCopy isStationery22) System nameLocked23) hasBundle hasBundle24) Invisible isInvisible25) Locked isAlias If an error occurs, the XFCN will return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Couln't get INTL resource" "Error : Missing or empty parameter(s)" "Error : Second param can only be "DontResolveAlias"This stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc.) and Switch XFCN (© F. Rinaldi).HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "DontResolveAlias" parameter---------------------------------------------------------------------• Added "=" param for online help</text>
<script>on mouseUphide cd fld 12hide meend mouseUp</script>
</part>
<part>
<id>123</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>441</left>
<top>219</top>
<right>507</right>
<bottom>233</bottom>
</rect>
<style>checkbox</style>
<showName> <true /> </showName>
<highlight> <true /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<name>Recursive</name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GetDir 1.8 by Frédéric RINALDIDescription----------GetDir is an XFCN that gets the content of any volume of folder. Its numerous options allow to select precisely the needed information, and to choose the resulting values and their order.Syntax------ GetDir ( <"pathName"> [, <"mode"> ] [, <"filter 1">...[, <"filter N"> ] ]Parameters-----------All parameters are not case sensitive. As usual, using "!" and "?" returns online help (resp. about and syntax). "pathName" is a string giving the pathname of the folder to explore. It cans end, or not, with a colon. "mode" is a one or two characters string giving the items type to extract and the scanning mode (recursive or not).The first char can be"F" (Files), "D" (Directories) or "A" (All). Its default value is "A". The second char, if present, must be "+", and will tell the XFCN to look into all subfolders starting from the choosen folder. "filter" is a logical expression setting a conditional filter to extract only some items of the choosen type. Many filters can be combined within the XFCN call, and are then logical-AND linked. Each filter is "X•Value" shaped,• being a logical operator among (in brackets , meaning when X is n) : = : is (contains) ≠ : is not (doesn't contain) < : less than (begins with) > : more than (ends with) ≥ : more or equal as (matches) ≤ : less or equal as (doesn't match)And the filters can be : "c•XXXX" : filter by file Creator (files only). XXXX is a 4 chars case sensitive string. "d•N" : filter by Data fork size (files only). N is a positive integer. "e•DATE" : filter by crEation date. DATE is a date string, understanding '/', '-' or '.' as separator. "f•N" : filter by number of files (Folders only). N is a positive integer. "l•N" : filter by logical Size (data fork + resource fork). N is a positive integer. Will slow down execution when used for folders. "m•DATE" : filter by Modification date. DATE is a date string, understanding '/', '-' or '.' as separator. "n•NAME" : filter by file or folder name. NAME is a string to which each found item will be compared. Note the special meaning of the • operator in this case. "o=MASK" : sets the output format of the extracted items. MASK is a string build with c,d,e,f,m,n,p,r,s,t,v,x,y chars, each one's row giving the order of the returned information. The chars are the same as filters' chars, except p (Pathname). The v stands for version number. Unknown is returned if no short version value is provided in the file. "r•N" : filter by Resource fork size (files only). N is a positive integer. "s•N" : filter by physical size (data fork + resource fork). N is a positive integer. Will slow down execution when used for folders. "t•XXXX" : filter by file Type. XXXX is a 4 chars case sensitive string. "x•TIME" : filter by creation time. TIME is a string "hour:minute" "y•TIME" : filter by modification time. TIME is a string "hour:minute"Using----- The function returns a return separated list of files and/or folders. Each line is composed by comma separated informations, as defined and ordered by "o=..." filter. If no Output mask is given, the only name will be returned. Current disk search can be stopped by typing Cmd-. Cmd-: or Escape. GetDir follows international resources, this for dates or foreign characters and in input as well as in output. This XFCN will not hang with null-starting file names, and will replace all these CHR(0) by CHR(1) in output. If an error occurs, a string beginning with "Error :" will be returned. This string can take the following values : "Error : Not a valid date" "Error : Couln't get INTL resource" "Error : First char of filter param must be [c,d,e,f,l,m,n,o,r,s,t,x,y]" "Error : Second char of filter param must be [=,≠,>,<,≥,≤]" "Error : Missing comparison value for "X•" test" "Error : Bad file creator" "Error : Only "o=…" allowed" "Error : "x" not allowed in output mask" "Error : Bad file type" "Error : Missing pathName" "Error : Volume not found" "Error : Directory not found" "Error : Not a directory"RELEASES HISTORY-----------------1.8• Added searching interruption feature• Added "=" param for online help1.7• Comma replaced by colon if output mask has many items1.6• CHR(0) are also replaced in file type & creator1.5• Only CHR(0) are now replaced by CHR(255) in file name1.4• Mofidied S filter and output to match physical size• Added L filter and output for logical size• Logical and physical size now allowed for folders• Fixed a bug of directory testing1.3• Added file version number for output mask• Added creation and modification time for filters and output mask</text>
<script>on RadioUpdate Start,Stopget number of the targetif (it > 3) and (hilite of btn it)then set hilite of btn it to falseelserepeat with i=Start to Stopdo "set hilite of btn i to (i=it)"end repeatif it > 3then select text of cd fld (((it-4) div 6) + 3)end ifend RadioUpdateon opencardend opencardon closeCardhide cd fld 12hide btn 58end closeCard</script>
</card>
card_23541.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>27</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>107</top>
<right>381</right>
<bottom>207</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> GetBootVol 1.1 by Frédéric RINALDIDESCRIPTION------------ GetBootVol returns the name of the boot volume.SYNTAX-------- GetBootVol ( )PARAMETERS------------ No parameter is required, but using "!" and "?" as first parameter will return an online help (resp. copyright ans syntax).USING----- The string returned is the name of the boot volume. If an error occurs, the XFCN will return : "Error : couldn't get boot volume name"</text>
<script>on mouseUpshow cd fld 2GetFullText "cd fld 1"if the Result Γëá emptythenanswer the Resultexit mouseUpend ifSetFullText "cd fld 2"if the Result Γëá emptythenanswer the Resultexit mouseUpend ifend mouseUp</script>
</part>
<part>
<id>17</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>69</left>
<top>15</top>
<right>434</right>
<bottom>67</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Text</name>
<script>on mouseUphide meput empty into meend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text><span class="style1"> </span><span class="style3">FullText Stack 1.0</span><span class="style1"> </span><span class="style2">by Frédéric RINALDI</span><span class="style1"> This stack contains two XCMDs : GetFullText and SetFullText that allow to transfer full-styled text between two fields. </span><span class="style3">GetFullText 1.0</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> GetFullText gets the styled text from a field and stores it temporarily in memory until SetFullText is called.</span><span class="style4">SYNTAX</span><span class="style1"> GetFullText <field descriptor></span><span class="style4">PARAMETERS</span><span class="style1"> <field descriptor> is a litteral string containing any valid field descriptor. Don't forget to enclose it in quotes, in order for it not to be interpreted by HyperCard when the XCMD is called. If you want to use the field name, you will use : </span><span class="style5">GetFullText "cd fld" && quote & "Name" & quote</span><span class="style1"> Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).</span><span class="style4">USING</span><span class="style1"> The XCMD creates a global variable named </span><span class="style6">FullTextHandle</span><span class="style1"> that contains the value of the temporary styled text handle stored in memory. </span><span class="style7"> Don't change its value by yourself, or you will crash your Mac.</span><span class="style8"></span><span class="style1"> Meanwhile, you can test its content to know if you're ready to use SetFullText, it should be ≠ empty in this case.</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, GetFullText can return : "Error : Param is not a field descriptor" "Error : Field not found" "Error : GetFullText works only with HC 2.0" "Error : Missing parameter" "Error : Out of memory" "Error : Couldn't set FullTextHandle global" </span><span class="style3">SetFullText 1.0</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> SetFullText sets the styled content of a a field using information previously stored in memory by GetFullTExt.</span><span class="style4">SYNTAX</span><span class="style1"> SetFullText <field descriptor></span><span class="style4">PARAMETERS</span><span class="style1"> <field descriptor> is a litteral string containing any valid field descriptor. Don't forget to enclose it in quotes, in order for it not to be interpreted by HyperCard when the XCMD is called. If you want to use the field name, you will use : </span><span class="style5">SetFullText "cd fld" && quote & "Name" & quote</span><span class="style1"> Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).</span><span class="style4">USING</span><span class="style1"> The XCMD uses the global variable named </span><span class="style6">FullTextHandle</span><span class="style1">, previsouly created by GetFullTExt and that contains the value of the temporary styled text handle stored in memory. </span><span class="style7"> Don't change its value by yourself, or you will crash your Mac.</span><span class="style8"></span><span class="style1"> Meanwhile, you can test its content to know if you're ready to use SetFullText, it should be ≠ empty in this case. This global variable and the styled text handle are purged from memory by SetFullText. So each call to SetFullText must be preceeded by GetFullText.</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, SetFullText can return : "Error : Param is not a field descriptor" "Error : Field not found" "Error : SetFullText works only with HC 2.0" "Error : Missing parameter" "Error : Must first use GetFullText" "Error : Couldn't set destination field" "Error : Couldn't empty FullTextHandle global"</span></text>
</content>
<name>FullText 1.0</name>
<script>on opencardend opencardon closeCardhide cd fld 2put empty into cd fld 2end closeCard</script>
</card>
card_22427.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpput FullSort(cd fld 1,"d=r") into cd fld 1put FullSort(cd fld 2,"d=l") into cd fld 2put FullSort(cd fld 3,"d=l") into cd fld 3end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>3</id>
<text>ABCDEFGH</text>
</content>
<content>
<layer>card</layer>
<id>4</id>
<text>1245678</text>
</content>
<content>
<layer>card</layer>
<id>5</id>
<text>102030405060708090</text>
</content>
<name>FullSort 2.7-3</name>
<script>on openCardset cursor to watchput empty into cd fld 1put empty into cd fld 2put empty into cd fld 3repeat with i=65 to 72put numToChar(i) & return after cd fld 1if i Γëá 67then put i-64 & return after cd fld 2else put return after cd fld 2put (i-64)*10 & return after cd fld 3end repeatput "90" after cd fld 3end openCard</script>
</card>
card_21975.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpRadioUpdate 11,13select text of cd fld 3end mouseUp</script>
</part>
<part>
<id>13</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>359</left>
<top>214</top>
<right>458</right>
<bottom>232</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Word</name>
<script>on mouseUpRadioUpdate 11,13select text of cd fld 3end mouseUp</script>
</part>
<part>
<id>14</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>359</left>
<top>231</top>
<right>458</right>
<bottom>249</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Item</name>
<script>on mouseUpRadioUpdate 11,13select text of cd fld 3end mouseUp</script>
</part>
<part>
<id>24</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>255</left>
<top>21</top>
<right>436</right>
<bottom>171</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>15</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>410</left>
<top>250</top>
<right>451</right>
<bottom>268</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Start</name>
<script></script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>310</top>
<right>492</right>
<bottom>325</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>17</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>187</left>
<top>276</top>
<right>334</right>
<bottom>305</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>>> FullSort >></name>
<script>on mouseUpglobal FullSortListset cursor to watchrepeat with i=1 to 6if hilite of btn ithen put first char of short name of btn i into Typeend repeatrepeat with i=7 to 10if hilite of btn ithen put first char of short name of btn i into Dirend repeatif hilite of btn 19thenrepeat with i=11 to 13if hilite of btn ithen put "," & quote & "c=" & short name of btn i && cd fld 3¬into Chunkend repeatif hilite of btn 17then put " to " & cd fld "Stop" after Chunkput quote after Chunkelse put empty into Chunkput "get FullSort(cd fld 1," & quote & "t=" & Type & quote & ","¬& quote & "d=" & Dir & quote & Chunk & ")" into cd fld 4do cd fld 4if first word of it is "Error"thenbeepanswer itelseput it into cd fld 2put FullSortList into cd fld 5end ifend mouseUp</script>
</part>
<part>
<id>19</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>327</top>
<right>492</right>
<bottom>342</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>25</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>16</left>
<top>302</top>
<right>53</right>
<bottom>335</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>29114</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script>on mouseUpgo prevend mouseUp</script>
</part>
<part>
<id>28</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>360</left>
<top>272</top>
<right>378</right>
<bottom>290</bottom>
</rect>
<style>checkbox</style>
<showName> <true /> </showName>
<highlight> <true /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script>on mouseUpget hilite of meset visible of btn "to #" to itset visible of cd fld "Stop" to itif itthen select text of cd fld "Stop"else select text of cd fld "Start"end mouseUp</script>
</part>
<part>
<id>29</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>410</left>
<top>273</top>
<right>451</right>
<bottom>291</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Stop</name>
<script></script>
</part>
<part>
<id>31</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>379</left>
<top>275</top>
<right>407</right>
<bottom>290</bottom>
</rect>
<style>opaque</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>to #</name>
<script></script>
</part>
<part>
<id>32</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>359</left>
<top>181</top>
<right>418</right>
<bottom>197</bottom>
</rect>
<style>checkbox</style>
<showName> <true /> </showName>
<highlight> <true /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Chunk</name>
<script>on mouseUpUpdateInterface hilite of meend mouseUp</script>
</part>
<part>
<id>33</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>395</left>
<top>251</top>
<right>412</right>
<bottom>269</bottom>
</rect>
<style>transparent</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>#</name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text>3.1.13.1.23.1.113.1.223.1.203.1.10</text>
</content>
<content>
<layer>card</layer>
<id>16</id>
<text>get FullSort(cd fld 1,"t=N","d=D","c=Char 5 to 11")</text>
</content>
<content>
<layer>card</layer>
<id>19</id>
<text>4,5,3,6,2,1</text>
</content>
<content>
<layer>card</layer>
<id>24</id>
<text>3.1.223.1.203.1.113.1.103.1.23.1.1</text>
</content>
<content>
<layer>card</layer>
<id>15</id>
<text>5</text>
</content>
<content>
<layer>card</layer>
<id>29</id>
<text>11</text>
</content>
<name>FullSort 2.7-2</name>
<script>on radioUpdate Start,Stoprepeat with i=Start to Stopset hilite of btn i to (number of the target = i)end repeatend radioUpdateon UpdateInterface Whatset visible of btn 11 to Whatset visible of btn 12 to Whatset visible of btn 13 to Whatset visible of btn 20 to Whatset visible of cd fld "Start" to Whatset visible of btn 17 to Whatif Whatthen select text of cd fld "Start"elseset hilite of btn 17 to falseset visible of btn 18 to falseset visible of cd fld "Stop" to falseend ifend UpdateInterface</script>
</card>
card_21449.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> FullSort 3.2 by Frédéric RINALDIDESCRIPTION------------ FullSort is a XFCN allowing any kind of sort, even co-sorting of lists.SYNTAX------- FullSort ( <text> [,"l=<sep>"] [,"i=<sep>"] [,"t=a|n|d|i|u"] [,"d=a|d|r|l"] [,"c=char x|word x|item x[ to y]"] [,<sort list>] )PARAMETERS------------ Except for the first parameter, each parameter is optional, can come in any order and is, of course, not case-dependant. Text is the list to sort, can be any container of line or comma-delimited list. The XFCN automatically recognizes the input separator, thus freeing of another unneeded parameter. "l=" defines a non-standard line separator, ie different than comma, return or space that are automaticly recognized. Old param "s=" is still valid. <sep> can be any character or one of the constants : space, return, tab, quote. "i=" defines a non-standard item separator, ie different than comma. If not supplied, FullSort uses the ItemDelimiter property of HC 2.0 to get it. <sep> can be any character or one of the constants : space, return, tab, quote. "t=" determines the sort type, and can be followed by any word beginning with a, n, d or i. With these chars, items or lines will be sorted by : A[scii] : ASCII code (this is the default type) N[umber]   : real value of any embedded number D[ate] : value of any embedded date MM/JJ/YY T[ime] : value of any embedded time HH:MM I[ntl]  : international code, thus recognizing diacritical marks U[ppercase] : not case-sensitive sort With N or D, the sort key can be preceeded or followed by any text, the XFCN is able to localize it anywhere in the string. If no sort key is present, the string will be placed at the end of the sorted list. "d=" determines the sort direction, and can be followed by any word beginning with a, d, r or l. With these, items or lines will be sorted in : A[scending] order (this is the default direction) D[escending] order R[andom] order L[ist] order L is the option allowing to co-sort any number of containers using the sort order of the first sort (see list parameter). "c=" determines the sort key chunk, and can be followed by "char x", "word x", "item x" or "char x to y", "word x to y", "item x to y" or "char x to *", "word x to *", "item x to *" x being the starting chunk number in the item, y the ending chunk number. Using "*" for y will use the whole ending part of the item, starting at chunk x, as sort key. Using this powerful parameter, sorting is allowed on virtually any part of the string. Last parameter is useful only when "d=l", allowing to define its own sort order, and must be a comma-separated list of positive integers. In this case, the sort is done accomoding the defined list, and doesn't use any comparison value anymore. By default, the XFCN tries to use the global variable FullSortList returned by any preceeding sort. In this way, any succeeding sort respects the same sort order. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the sorted list of lines or items, and sets a global variable FullSortList with a comma-separated list of the resulting sorting order. Using "d=l" parameter in following calls with no list will use this global variable, and allow to co-sort any other container. If an error occurs, the XFCN can return : "Error : "c=" param must be followed by [char,word,item]" "Error : "c=item" cannot be used with item sorting" "Error : "c=xxxx " must be followed by a positive integer" "Error : "c=xxxx" must be followed by a space" "Error : Bad item x in Sort list" "Error : Char following "d=" must be [a,d,r,l]" "Error : Char following "t=" must be [a,n,d,i,u]" "Error : Couln't get INTL resource" "Error : First char of param 2..n must be [t,d,c,s]" "Error : Missing Sort list parameter" "Error : Missing input parameter" "Error : Out of memory" "Error : Second char of param 2..n must be "="" "Error : Sort chunk param defined twice" "Error : Sort direction param defined twice" "Error : Sort type param defined twice" "Error : "x" defined twice in Sort list" "Error : Stop chunk must be greater that start chunk"VERSIONS HISTORY-----------------3.2 : 06/29/92• Date & time sorting 35% faster !3.1 : 05/17/92• Fixed again itemDelimiter handling3.0 : 04/27/92• Fixed itemDelimiter/HC 2.0v2 bug2.9 : 03/07/92• Enhanced separators handling2.8 : 02/23/92• Added item delimiter param2.7 : 03/17/91• Fixed time sorting bug arising with "12:xx am"2.6 : 03/10/91• Fixed time sorting bug arising with "12:xx pm"2.5 :• FullSortList is no more cleared when co-sorting and input list is empty2.4 :• Fixed bug arising with unusual separator ASCII > 128• Fixed out of memory bug with list sort of large lists2.3 :• Fixed bug arising with large sorting lists2.2 :• Fixed word parsing procedure2.1 :• Fixed random memory bug2.0 :• New, quicker sort algorythm : 2 times faster with Ascii or International sort 3 times faster with Numeric sort 30 times faster Date sort !• The sort is now conservative, and keeps the previous order for chunks not used as sort key or unsorted items.• Added Uppercase sort ("t=u") to have a not case sensitive sort• Added Time sort ("t=t")• Added true chunk sorting. Now "c=chunk X" or "c=chunk X to Y" allowed• Unsorted items are now always at the end of the sorted list• Added a separator param ("s=…") allowing to define non-standard item separator (ie other that comma or return).1.4 : • XFCN is more compact• sort doesn't anymore consume memory• co-sorted containers may have any number of entries• empty entries are preserved1.3 : • items or lines of text with less chunks than specified by "c=..." are now placed at the end of the sorted list, whereas it returned an error before.• sort with "d=l" is now correct, even if the number of items of the sort list is less than the number of lines or items of text.1.2 : • fixed a bug arising with empty lines or items at the beginning or end of the text.1.1 : • FullSortList global is now correct after a descending sort.</text>
</content>
<name></name>
<script></script>
</card>
card_20770.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpGet FullSFPut("Name the file :","My File",empty,10)if it Γëá emptythenshow cd fld 2put return & it into cd fld 2end ifend mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>79</left>
<top>123</top>
<right>414</right>
<bottom>197</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUphide meend mouseUP</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullSFPut 1.3 by Frédéric RINALDIDESCRIPTION------------ FullSFPut XFCN brings the SFPutFile dialog on the screen, allowing to type a name and to choose destination folder for a new file.SYNTAX-------- FullSFPut([<prompt>[,<default>[,<initial folder>[,<max len>]]]])PARAMETERS------------ All parameters are optional. Prompt is a string that will appear as prompt in the disalog. Default is the default name to show in the edit field of the dialog. Initial folder is a pathname of the folder hierarchy that will be displayed when the dialog pops. Default value is the current stack's folder. MaxLen is an integer (>0 and <256) that will limit the length of the input string. A beep will sound as soon as the user tries to override this limit. Default value is 255. As usual, using "!" and "?" returns online help (resp. about and syntax).USING----- The XFCN returns a two lines string, being respectively the name and the path choosen by the user. If an error occurs, the XFCN can return : "Error : Volume not found" "Error : Directory not found" "Error : I/O Error" "Error : Unknown #xx" "Error : Not a directory" "Error : Out of memory" "Error : Couldn't get volume info" "Error : Couldn't get working directory info" "Error : Couldn't get directory info" "Error : Length param must be < 256" "Error : Bad length param"HISTORY-------1.3• Use notification manager for HC 2.01.2• Added screen refresh when dialog disappears</text>
<text> FullSFPack 1.4 formerly FullFile by Frédéric RINALDIDESCRIPTION------------ FullSFPack allows to use standard dialogs for seleting a file, folder or volume. It allows even to deal with Alias files themselves rather than with pointed entries, and adds a multiple files selection dialog.SYNTAX------- FullSFPack(<G[et]|P[ut]|V[olume]|F[older]|M[ultiple]|Q[uickTime]> [,<type 1[…,type 4]>][,<default dir>][,<new name>] [,<prompt>][,"DontResolveAlias"])PARAMETRES------------ <G[et]|P[ut]|V[olume]|F[older]|M[ultiple]|Q[uickTime]> is the action param and defines the desired dialog. <type 1[…,type 4]> is a 1 to 4 items list containing types of files to display in the dialog. Default presents all files. <default dir> is a full pathname string allowing to set the current directory when the dialog pops on screen. <new name> is a string only needed with "P[ut]", and gives the default name for the new file in the dialog's edit field. <prompt> is the message string appearing in the dialog. "dontResolveAlias" allows to get the alias file pathName rather than those from the pointed file. Applies only to G[et] and M[ultiple]. Using "!", "?" or "=" as first parameter will return an online help (resp. USING------ FullSFPack requires System 7.0. The XFCN returns the full patname of the selected file, folder or volume. With "M[ultiple]", it returns a return delimited list of all collected files. Q[uickTime] option require QuickTime to be installed, and allows viewing and on-the-fly creation of PICT and MooV file previews. FullSFPack doesn't need any associated DLOG/DITL resources, and is able to create them on the fly when needed. MeanWhile, when called from a stack on a locked volume, the XFCN isn't able to add those new resources to the current stack. That's why resources have been provided in this stack, and the XFCN detects their availability. Finally, on locked volume, if you forgot to copy these needed DLOG/DITL resources, FullSFPack still tries to work by using standard resources from the System (except for M[ultiple] and F[older] which always need custom dialog). Only difference : there will be no prompt displayed. Depending on requested action, you will need to add the following resources (don't rename them !) :Action DLOG DITL LDEF----------+---------------+----------------+-------------G[et] FSFPGetVol FSFPGetVolDir <aucune>P[ut] <aucune> <aucune> <aucune>V[olume] FSFPGetVol FSFPGetVolDir <aucune>F[older] FSFPDir FSFPGetVolDir <aucune>M[ultiple] FSFPMultiGet FSFPMultiGet FSFPMultiGetQ[uickTime] FSFPPreview FSFPPreview <aucune>ERRORS------- If an error occurs, FullSFPack will return : "Error : FullSFPack needs System 7.0" "Error : Missing or empty parameter" "Error : Bad action parameter" "Error : Missing DLOG/DITL resources, unable to create them" "Error : QuickTime not installed" "Error : Out of memory"HISTORY-------1.4 : 05/15/92• Added QuickTime preview dialog option• Enhanced inside file filtering• Fixed MultiFileGet bug when files have the same name• Fixed number of collected files display in MultiFileGet• Now PutFile also has SuperBoomerang if available• Fixed server volume aliases bug• Added support for existing resources to get locked volume compatibility1.3 : 12/25/91• Fixed alias file bug under System 7.0.11.2 09/02/91• Fixed Select directory that didn't return answer1.1 08/25/91• Fixed bug preventing alias files to appear in italic with "M"• Added Notification Mgr call• Fixed Cancel bug with "F"1.0 08/12/91</text>
</content>
<name></name>
<script>on mouseUpif the target contains "card button"thenput FullSFPack(short name of the target) into cd fld 2if cd fld 2 Γëá emptythen show cd fld 2end ifend mouseUp</script>
</card>
card_19894.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "Resource type(s) :" with "XFCN"if it ≠ emptythen put "T=" & it into Typeelse put "T=ALL" into Typeask "Output mask :" with "TNI"if it ≠ emptythen put "O=" & it into Outputelse put "O=TNI" into Outputif last word of the version ≥ 2.0then answer file "File to search in :"else ask "PathName of file to search in :"if it is emptythen get FullResList(Type,Output)else get FullResList(Type,Output,"W=" & it)if first word of it is "Error"thenbeepanswer itelseput it into cd fld 3ShowHide trueend ifend mouseUp</script>
<text> FullResList 2.0 by Frédéric RINALDIIMPORTANT :----------- In order to keep parameter coherency in version 2.0, previous <fileName> param has changed to "W=<fileName>". So you should add the "W=" prefix in your calls.DESCRIPTION------------ FullResList allows to get a list of resources informations for any file, or even to test if a resource is present.SYNTAX-------- FullResList([<T=ALL|Type1[…,TypeN]>][,<N=res name>][,<I=res id>] [,<W=ALL|fileName>][,<O=A|T|N|S|I|W[…A|T|N|S|I|W]>])PARAMETERS------------ All parameters are optional. <T=ALL|Type1[…,TypeN]> allows to define one or more types of resources to list. Default is "T=ALL". <N=res name> defines the resource name to search. <I=res id> defines the resource id to search. <W=ALL|fileName> defines the resource file to search in. <fileName> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. Aliases are also supported. Default is current stack. If "ALL" is used, all accessible resources will be returned (Current stack + stacks in use + Home + HyperCard + System). <O=A|T|N|S|I|W[…A|T|N|S|I|W]> allows to define the output format of returned list resource entries. Order and components can be freely choosen using A (attributes), T (type), N (name), S (size), I (ID) and W (where). Default is "O=TNI". Attributes are returned as string that can contain any combination of : C (changed), R (pReload), P (Protected), L (Locked), U (pUrgeable) and S (Sustem heap). Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns a return delimited list of entries formatted according to given output mask. Informations in each entry are comma delimited. Logical AND is computed with params "T=", "N=" and "I=".ERRORS-------If an error occurs, FullResList can return : "Error : Out of memory" "Error : Empty parameter #x" "Error : Missing information following "X="" "Error : Out of memory" "Error : Bad resource ID" "Error : "X" not allowed in output mask" "Error : This file has no resource fork" "Error : Param #x must begin with T,N,I,O or W" "Error : Bad parameter format" "Error : Out of memory" "Error : No resources found" "Error : Bad resource type" "Error : Not a file" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : I/O Error"HISTORY--------2.0 : 04/27/92• Added "N=" and "I=" params• Changed <fileName> param to "W=<fileName>"• Added "W" for output mask, allowing to know in which file each resource was found (useful with "T=ALL").1.3 : 12/25/91• Fixed alias file bug under System 7.0.11.2 11/12/91• Added ALL in file param1.1 10/25/91• Fixed minor bug due to openRFPerm1.0 10/24/91• First release</text>
<script>on mouseUpput line 43 to 200 of cd fld 1 into cd fld 2show cd fld 2ask "Remplace :" with "e"if it = emptythen exit mouseUpput it into Searchask "By :" with "ΓÇó"if it = emptythen exit mouseUpput FullReplace(cd fld 2,Search,it) into cd fld 2end mouseUp</script>
</part>
<part>
<id>17</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>120</left>
<top>62</top>
<right>393</right>
<bottom>271</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script>on mouseuphide meend mouseUP</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullReplace 1.1 by Frédéric RINALDIDESCRIPTION------------ FullReplace allows to strip or replace a string in a text.SYNTAXE--------- FullReplace (<input>,<search pattern>[,<replace pattern> [,<all>[,<offset>]]])PARAMETRES------------ Parameters 3 to 5 are optionals. <input> is the text that will be parsed. <search pattern> is the string to search for. <replace pattern> is the replacement string to search for. It may be empty. <all> is a boolean, telling if all matches (true) must be handled, or only the first one (false). Default is true. <offset> is the char number at which the search will begin. Default is 1. Using "!" and "?" returns online help (resp. about and syntax).USING------ FullReplace will return the input text, once replacement done. Pattern searching is not cas sensitive.If an error occurs, FullREplace will return : "Error : Missing parameter(s)" "Error : Param #4 must be boolean" "Error : Param #5 must be > 0"HISTORY-------1.1 02/23/92• Search no more limited to 32000 chars</text>
</content>
<content>
<layer>card</layer>
<id>17</id>
<text>This (th•s•) •xt•rnal(s) is (ar•) Fr••War•,allowing unlimit•d us• in any non-comm•rcial stack. You just n••d in this cas• to m•ntion th• author's nam• and copyright in your stack.Any comm•rcial us• must b• lic•ns•d and aknowl•dg•d by th• author. © F. Rinaldi - 1991Appl•Link: RINALDI1 CalvaCom : FR10 Compus•rv• : 71170,2111</text>
</content>
<name></name>
<script></script>
</card>
card_18815.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpanswer "Rename a :" with "File" or "Folder"put it into Whatif What is "File"thenput FilePath(empty,"File to rename") into Pathelseput FolderName("Folder to rename") into Pathdelete last char of Pathend ifif Path is empty then exit mouseUpask "New name :" with leafName(Path)if it Γëá emptythenFullRename Path,itif the Result Γëá emptythen answer the Resultelse answer What && "renamed"end ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullRename 1.4 by Frédéric RINALDIDESCRIPTION------------ FullRename XCMD allows to rename a file or folder, keeping previous privileges when working on a server folder.SYNTAX-------- FullRename <file/folder pathname>,<new name>[,"DontResolveAlias"]PARAMETERS------------ <file/folder pathname> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <new name> is a simple string. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING-----If an error occurs, FullRename can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Seconds params must be a single name" "Error : Third param can only be "DontResolveAlias""HISTORY-------1.4 06/09/92• Fixed volume renaming when file has the same name1.3 03/10/92• Fixed volume renaming1.2 : 12/25/91• Fixed alias file bug under System 7.0.11.1 :• Added support for System 7.0 alias files• General enhancement of the code• Added "DontResolveAlias" parameter• Added "=" param for online helpThis stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc.)LeafName XFCN (by Kevin CALHOUN), FolderName XFCN (by Eric CARLSON ,and Anup MURARKA)</text>
</content>
<name></name>
<script></script>
</card>
card_18193.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpanswer "Delete a :" with "File" or "Folder"put it into Whatif What is "File"then put FilePath(empty,"File to delete :") into Pathelse put FolderPath("Folder to delete :") into Pathif Path is empty then exit mouseUpFullRemove Pathif the Result Γëá emptythen answer the Resultelse answer What && "deleted"end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullRemove 1.0 par Frédéric RINALDIDESCRIPTION------------ FullRemove allows to delete a file or folder and all its content from a volume.SYNTAX------- FullRemove <file|folder path|name>[,"DontResolveAlias"]PARAMETERS------------ <folder path|name> can be a single name or whole pathname of a file or folder. If just a single name is supplied, file or folder is assumed to be in the same folder than the current stack. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).ERRORS------- If the remove is successfull, the Result will be empty. If an error occurs, the Result can return : "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Second param can only be "DontResolveAlias"HISTORY--------1.0 08/12/91 This stack uses FilePath & FolderPath XFCNs, © 1898, 1990 Apple Computer, Inc.</text>
<script>on mouseUpask "Search what :" with "Frederic"if it is empty then exit mouseUpput it into Patternanswer "International" with "false" or "true"answer FullOffset(Pattern,cd fld 1,it)end mouseUp</script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>98</left>
<top>87</top>
<right>408</right>
<bottom>222</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>27</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>179</left>
<top>107</top>
<right>381</right>
<bottom>207</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide cd fld 3hide cd fld 2end mouseUp</script>
</part>
<part>
<id>28</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>166</left>
<top>121</top>
<right>338</right>
<bottom>202</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <true /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>bold</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUphide cd fld 4hide cd fld 5end mouseUp</script>
</part>
<part>
<id>29</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>236</left>
<top>151</top>
<right>331</right>
<bottom>194</bottom>
</rect>
<style>transparent</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script>on mouseUphide cd fld 4hide cd fld 5end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullOffset 1.0 par Frédéric RINALDIDESCRIPTION------------ FullOffset is an extension to offset() internal HyperTalk instruction. It allows to define to search mode as well as starting char.SYNTAX------- FullOffset(<pattern>,<text>[,<offset>][,<international>])PARAMETRES------------ <pattern> is the string to be searched. <text> is the string where <pattern> will be searched. <offset> is an integer giving the starting char. Default is 1. <international> is a boolean telling if the search must ignore diacritical marks (true) or be full ASCII (false). Default is true. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the char number of the found pattern, 0 is not found. The search is not case-sensitive.ERRORS-------If an error occurs, FullOffset can return : "Error : Missing parameter(s)" "Error : Pattern cannot exceed 255 chars" "Error : Offset param must be a positive integer"HISTORY--------1.0 : 12/25/91• First release</text>
<script>on mouseUpanswer "Move a :" with "File" or "Folder"put it into Whatif What is "File"then put FilePath(empty,"File to move :") into Pathelse put FolderPath("Dossier to move :") into Pathif Path is empty then exit mouseUpput FolderPath("Destination folder :") into Destif Dest Γëá emptythenFullMove Path,Destif the Result Γëá emptythen answer the Resultelse answer What && "moved"end ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullMove 1.1 by Frédéric RINALDIDESCRIPTION------------ FullMove allows to move a file or folder on a same volume.SYNTAX-------- FullMove <prov path>,<dest path>[,"DontResolveAlias"]PARAMETERS------------ <prov path> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <dest path> must not include the name of the item to move, but just its path. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING-----If an error occurs, FullMove can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Third param can only be "DontResolveAlias"" "Error : Cannot move to different volume" "Error : Same prov and dest folder"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "DontResolveAlias" parameter• Added "=" param for online help This stack uses FilePath & FolderPath XFCNs, © 1898, 1990 Apple Computer, Inc.</text>
<script>on mouseDownget FullHPop(cd fld 2)TestError(it)put it into cd fld "result"if it Γëá emptythenif item 2 of it Γëá emptythen put 2 into ItemNbelse put 1 into ItemNbset name of me to item ItemNb of itResizeMe item ItemNb of line 2 of it,"BtnArrow"end ifend mouseDown</script>
</part>
<part>
<id>17</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>238</left>
<top>263</top>
<right>253</right>
<bottom>276</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>31383</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>BtnArrow</name>
<script>on mouseDownsend mouseDown to btn 1end mouseDown</script>
</part>
<part>
<id>18</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>324</left>
<top>263</top>
<right>492</right>
<bottom>338</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>19</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>154</left>
<top>311</top>
<right>321</right>
<bottom>338</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Result</name>
<script></script>
</part>
<part>
<id>30</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>154</left>
<top>287</top>
<right>213</right>
<bottom>304</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script>on mouseDownget FullHPop("FONT")TestError(it)put it into cd fld "result"if it Γëá emptythenput item 1 of it into meResizeMe item 1 of line 2 of it,"FldArrow"set textFont of btn 1 to item 1 of itend ifend mouseDown</script>
</part>
<part>
<id>31</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>194</left>
<top>288</top>
<right>213</right>
<bottom>301</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>31383</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>FldArrow</name>
<script>on mouseDownsend mouseDown to cd fld 4end mouseDown</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullHPop 1.3 by Frédéric RINALDI Yet another hierarchical popupmenu XFCN? Nope. Once again FullHPop will definitly be the most versatile and powerful popUp XFCN. Among its features: • One param fits 95% of the user needs when dealing with popupmenu • Allows font & size choosing • Smart enough to capitalize each item and style metacharacter to match the Human Interface Guidelines. • A special hack has been provided to allow SICN inserting using metacharacter (like ^xxx for an ICON). • No need for the user to compute the ICON or SICN ID before passing it. Simply put the real resource ID after the metacharacter. • Item selection of submenu owner is allowed. • No menu or submenu length limit (32000 chars, 127 submenus) • Any automatic feature can be redefined using parameters • Returns the selected item and subitem string width to allow resizing of the target object. • Brings auto-checking of menu item according to target name or content. • Popupmenu pops automatically where it is expected. • Builds resources menuDESCRIPTION------------ FullHPop brings a popup or hierarchical popup menu to allow user selection.SYNTAX------- FullHPop(<menu>[,<loc>][,<selected item>][,<Font[,size]>] [,<checkMark>][,<sub owner select>][,"fastest"])PARAMETERS------------ Only first param is required, all other are optional. <menu> is the popup menu definition text. For a single menu, item separator char can be return, comma or semicolon. For a hierarchical menu, item separator can be return or semicolon, while subitems separator will be comma. If this param is exactly a four char string (like "FONT" or "XCMD"), the XFCN will automatically build a menu containing all resource names of the defined type. Any usual metacharacter can be used in string : ^XXX associates an ICON resource to the item !X puts a X mark char before the item <X sets the style of the item (B, I, O, U, S) NOTE : Menu Mgr doesn't allow <E (extend) and <C (condense) /X associates a command key to the item ( disables the item and a special hack : ¨XXX associates an SICN resource to the item <loc> is a point "h,v" giving the topleft corner of the selected item of the menu when it pops on screen. Default is the topleft of the target button or field, or the current mouseLoc when used without field or button. <selected item> is an integer giving the item number that will appear right at the cursor location when the menu pops. With 0, the menu will drop down from its top. With a positive value, the item will be checked, while a negative value will just position the item without checking it. If this param is not used, the XFCN will automatically check the item corresponding to the the target button name of field content. <Font[,size]> is a one ot two items string allowing to force a font and size for the menu. Default setup uses the font and size of the target object. <checkMark> is a single char giving the checkmark char. Default uses the regular check for Chicago, "√" for any other font. <sub owner select> is a boolean that will enable of disable the feature that allows to even select an item having a submenu. Default is true. "fastest" allows to disable smart features from FullHPop, thus make it respond as fast as possible. But the drawback of it is that items will not be capitalized anymore, ICON ID must be computed as usual (see IM I-346 to 349), and SICN recources become unavailable. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN must ne called in a mouseDown handler from either a button or a field. FullHPop will return a two line result : "<item name>,<subItem name>,<item number>,<subItem number> <item width>,<subItem width>" The first line returns informations about the selected item and subitem, while the second gives the selection string width according to menu font and size. This information is intended to give the user ability to resize the calling object to respect interface. If the mouse button is released outside the menu, the result will be empty.ERRORS-------If an error occurs, FullHPop will return : "Error : Bad ICON or SICN ID (257 ≤ x ≤ 511)" "Error : Cannot exceed 127 submenus" "Error : Missing or empty parameter(s)" "Error : Empty param #x" "Error : Bad font size" "Error : Incorrect param #x" "Error : No such resource"HISTORY-------1.3 10/26/91• "-" char can be preceeded by prefix char "\" as well.1.2 10/14/91• Added mouseLoc default loc for card click• Fixed font attributes handling when no target font property is available• Fixed prefix char routine1.1 10/09/91• Negative loc values now accepted as parameter• Added "\" prefix char for metacharacters in string</text>
<script>on ResizeMe Width,BtNameput rect of the target into TheRectput item 1 of TheRect + Width + 25 into item 3 of theRectset rect of the target to TheRectset right of btn BtName to right of the targetend ResizeMeon TestError Whatif first word of What is "Error"thenbeepanswer Whatexit to HyperCardend ifend TestError</script>
</card>
card_16663.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpset cursor to watchlsrepeat with i=2 to 8if i Γëñ 6then show cd fld ishow btn iend repeatulsend mouseUp</script>
</part>
<part>
<id>17</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>17</left>
<top>256</top>
<right>508</right>
<bottom>338</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>18</textHeight>
<name></name>
<script>on mouseUphideAllend mouseUp</script>
</part>
<part>
<id>18</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>92</left>
<top>262</top>
<right>383</right>
<bottom>279</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Pattern</name>
<script></script>
</part>
<part>
<id>29</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>32</left>
<top>301</top>
<right>89</right>
<bottom>318</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>false</name>
<script>on mouseUpSetBtn 2,3end mouseUp</script>
</part>
<part>
<id>30</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>32</left>
<top>317</top>
<right>89</right>
<bottom>334</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <true /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>true</name>
<script>on mouseUpSetBtn 2,3end mouseUp</script>
</part>
<part>
<id>19</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>112</left>
<top>301</top>
<right>169</right>
<bottom>318</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>false</name>
<script>on mouseUpSetBtn 4,5end mouseUp</script>
</part>
<part>
<id>20</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>112</left>
<top>317</top>
<right>169</right>
<bottom>334</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <true /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>true</name>
<script>on mouseUpSetBtn 4,5end mouseUp</script>
</part>
<part>
<id>21</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>191</left>
<top>301</top>
<right>248</right>
<bottom>318</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <true /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>false</name>
<script>on mouseUpSetBtn 6,7end mouseUp</script>
</part>
<part>
<id>22</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>191</left>
<top>317</top>
<right>248</right>
<bottom>334</bottom>
</rect>
<style>radiobutton</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>true</name>
<script>on mouseUpSetBtn 6,7end mouseUp</script>
</part>
<part>
<id>23</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>318</left>
<top>297</top>
<right>363</right>
<bottom>314</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Start</name>
<script></script>
</part>
<part>
<id>25</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <true /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>318</left>
<top>316</top>
<right>389</right>
<bottom>333</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>Items</name>
<script></script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>399</left>
<top>260</top>
<right>499</right>
<bottom>310</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Result</name>
<script></script>
</part>
<part>
<id>27</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>399</left>
<top>312</top>
<right>500</right>
<bottom>333</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Search</name>
<script>on mouseUpset cursor to watchput (hilite of btn 3) into Exactlyput (hilite of btn 5) into Allput (hilite of btn 7) into Caseif cd fld "Start" is emptythen put 0 into Startelse put cd fld "Start" into Startif cd fld "Items" is emptythenget FullFind(cd fld "Container",cd fld "Pattern",Exactly,All,Case,¬Start)elseget FullFind(cd fld "Container",cd fld "Pattern",Exactly,All,Case,¬Start,cd fld "Items")end ifif first word of it ≠ "Error"thenset scroll of cd fld "Result" to 0put it into cd fld "Result"else answer itend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FullFind 1.4 by Frédéric RINALDIDESCRIPTION------------ FullFind XFCN allows to search for first of all matches of a string in a container.SYNTAX-------- FullFind(<container>,<pattern>[,<exactly>[,<all>[,<case sens.> [,<start>[,<item(s)>]]]])PARAMETERS------------ Container is where the pattern will be searched in. Pattern is the search string, and cannot exceed 255 chars. Exactly can be true or false, and defines if the search will match the pattern as full word (true), or just as chars (false). Default is true. All can be true or false, and defines if the search will return only the first match (false), or all matches (true). Default is false. Case sens. can be true or false, and defines if the search must be case sensitive (true) or not (false). Default is false. Start is an integer defining the char after which the search begins. Default is 0. Item(s) is an item list of the item numbers in which the pattern will be sarched in each line. Default is the whole line. Using "!", "?" and "=" as parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns a one or many lines result, each one containing four items "X,Y,Z,T", where : X is the position in the container of the first char of the pattern Y is the line number Z is the position in the line of the first char of the pattern T is the item number If the pattern is not found, the XFCN returns an empty string.If an error occurs, FullFind can return : "Error : Missing parameter(s)" "Error : Param 3 must be true|false" "Error : Param 4 must be true|false" "Error : Param 5 must be a positive integer" "Error : Param 6 must be an integer > 0" "Error : Couldn't build the result" "Error : Separator char not allowed at the end of pattern"HISTORY--------1.4 : 05/17/92• Added itemDelimiter handling for specific item searching1.3 02/23/92• Search no more limited to 32000 chars• Added exact search with multi-word pattern1.2 8/16/91• Added "=" online help param• Using Script Mgr to find word boundaries</text>
</content>
<content>
<layer>card</layer>
<id>17</id>
<text>Pattern : Exactly All Case Sens. Start Item(s)</text>
</content>
<content>
<layer>card</layer>
<id>18</id>
<text>the</text>
</content>
<content>
<layer>card</layer>
<id>26</id>
<text>430,21,23,1</text>
</content>
<name></name>
<script>on SetBtn start,stoprepeat with i=start to stopset hilite of btn i to (number of the target = i)end repeatend SetBtn</script>
</card>
card_16310.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> FullDrag 1.3 by Frédéric RINALDIDESCRIPTION------------ FullDrag XFCN allows to drag a gray outline of one or more rectangles, and even test a condition while dragging.SYNTAX-------- FullDrag (<rect(s)>[,<limit rect>[,<test>,<if true>[,<if false>]]])PARAMETERS------------ <rect(s)> can be a single rect, or a return delimited list of many rectangles. <limit rect> defines the maximal area for dragging. <test> string is an HyperTalk boolean statement (like "the mouseLoc is within rect of fld 1") which will be repetitivly evaluated while dragging. <if true> and <if false> are two Hypertalk statement string which will be executed when the test string will return true or false. As usual, using "!", "?" et "=" returns online help (resp. about, syntax and output).USING----- If the mouse button is released within limit rect, the XFCN will return a two items string "x,y" corresponding to the horizontal and vertical move from the original point. If the mouse is released outside, the result will be empty. Holding shift key allows to constraint move to horizontal or vertical axis.ERRORS-------If an error occurs, the XFCN can return : "Error : Missing or empty rect parameter" "Error : Incorrect rect in param #1" "Error : Incorrect limit rect" "Error : Incorrect Test string" "Error : Missing action if true"HISTORY--------1.3 06/28/92• Fixed bug with rapid double-click.1.2 02/23/92• Fixed pattern bug with SuperCard.• Constraint detection has been enhanced1.1 12/26/91• Changed way to pass parameter to FilterProc• Refresh of screen on output• Added move constraints</text>
</content>
<name></name>
<script>on DoMoveput rect of btn 1 & return & rect of btn 2 into RectListput fulldrag(RectList,"0,0,512,342",¬"the mouseLoc is within rect of btn 3",¬"set icon of btn 3 to 131",¬"set icon of btn 3 to 130") into Moveif first word of Move is "Error"thenanswer Moveelserepeat with i=1 to 2get loc of btn iadd item 1 of Move to item 1 of itadd item 2 of Move to item 2 of itset loc of btn i to itend repeatend ifend DoMove</script>
</card>
card_15698.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseEnterFullBalloons "ShowDirect","This is a showDirect call"end mouseEnteron mouseUpget short name of meif last word of it is "OFF"thenput "ON" into last word of itFullBalloons "Off"elseput "OFF" into last word of itFullBalloons "On"end ifif first word of the Result is "Error"then answer the Resultelse set name of me to itend mouseUp</script>
<text> FullBalloons 1.0 by Frédéric RINALDI Yet another HyperCard Balloon Help external ? Nope. Just because I think that the previous sets provided by other developers dont fit the real user needs, have too impenetrable parameters, are simply buggy or hard to implement, or miss some features provided by Help Mgr. So, once again, I wrote it by myself, assuming that : • One global XCMD is the best approach, since most of time result is not needed if the external is well done. • It must check for Help Mgr availability rather than simply bomb under System 6 (don't laugh, I've got one like that !) • All parameters must be case insensitive to be more user-friendly, and whenever possible, be in any order in the external call (read EDGE !) • One HyperTalk statements with two minimal parameters must fit 90% of the needs, including auto-removing, correctly placing the tip, etc... • No user has to deal with variant code 0..7 to set the tip location on the balloon. Who can remember that, when "topLeft" or "rightBottom" are self-explaining ? • Styled text is available in Balloon Help so why not implement it also ?DESCRIPTION------------ FullBalloons allows to add Balloon Help in a stack.SYNTAX------- FullBalloons <action>[,<balloon content>[,<tipLoc>] [,<hotRect>][,<tipPosition>]]PARAMETERS Only param 1 is only needed param, param 2 is needed only when param 1 is "show…". All other params are optional and can be in any order. <action> is the action string, of course case insensitive, and can be : on : turn balloon Help on off : turn balloon Help off isOn : test if Balloon Help is on or off isShowing : test if a balloon is currently showing showDirect : show a balloon using litteral parameter showPICT : show a balloon using a PICT resource showSTR : show a balloon using a STR resource showSTR# : show a balloon using a STR# resource showField : show a balloon using styled text from a field ShowTEXT : show a balloon using TEXT and styl resources remove : remove currently showing balloon <balloon content> is only needed when first param begins with "show…". Depending on choosen action, this param will be : showDirect : a litteral string or any container showPICT : a PICT resource ID showSTR : a STR resource ID showSTR# : a two item string "ID,index" where ID the the STR# resource ID and index the string number in it. showField : a string giving the field descriptor. It can be any valid descriptor (name, number or ID), and must be enclosed in quotes (like "cd fld 1" or "bg fld id 52") ShowTEXT : a TEXT/styl resources ID <tipLoc> is a point giving the location of the balloon tip. Default is the current mouseLoc. <hotRect> is a rect giving the area where the balloon disappears as soon as the mouse is not in anymore. Default is the rect of target object, since calls to FullBalloons use MouseEnter handler. <tipPosition> is the position of the tip on the balloon. Default is leftTop, but the Help Mgr always can change it to make the balloon fit on screen. If you want to force it the a specific position, the parameter can be : leftTop,topLeft,rightTop,topRight,bottomRight,rightBottom,bottomLeft,leftBottom. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- FullBalloons is usually callled in a MouseEnter handler. Since balloon disposing is automatic, no mouseLeave handler is needed. With unlocked fields, a good practice is the hide the balloon as soon as clicked in the field : on openField FullBalloons "remove" end openField You don't need to test for Balloon Help state (on/off) before calling showBalloon "show…". The external doest it for you. You don't need to test for that summy -853 error code coming from a too quick cursor movement, nor need a special handler for it. Once again, that stuff is done by the XCMD. Since Help Mgr is quite slow, quickly moving the mouse around can sometimes be too fast for mouseEnter messages to be send. One good workaround is too add in the stack script : on mouseWithin get word 1 to 2 of the target && number of the target FullBalloons "IsShowing" if not the Result and it ≠ the selectedField then send mouseEnter to the target end mouseWithinERRORS-------If an error occurs, FullBalloons can return : "Error : Balloons Help not supported" "Error : Missing or empty parameter" "Error : Bad action parameter" "Error : Missing balloon content parameter" "Error : Missing STR# index" "Error : Bad field descriptor" "Error : TEXT resource cannot exceed 255 chars" "Error : HotRect defined twice" "Error : TipLoc defined twice" "Error : TipPosition defined twice" "Error : Bad tipPosition parameter" "Error : Out of memory" "Error : Resource not found"</text>
</content>
<content>
<layer>card</layer>
<id>23</id>
<text>Editing field just for fun…</text>
</content>
<name>FullBalloons 1.0</name>
<script>on opencardFullBalloons "IsOn"if the Result is truethen set name of btn 1 to "Désactiver l'aide bulles"else set name of btn 1 to "Activer l'aide bulles"end opencardon closeCardend closeCardon mouseWithinget word 1 to 2 of the target && number of the targetFullBalloons "IsShowing"if the Result is false and it ≠ the selectedFieldthen send mouseEnter to the targetend mouseWithin</script>
</card>
card_48568.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "Number to format :" with "523.62"if it is empty then exit mouseUpput it into Nbask "Format string :" with "##0;(##0);'zero'"if it is empty then exit mouseUpanswer FormatNum(Nb,it)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FormatNum 1.0 by Frédéric RINALDIDESCRIPTION------------ FormatNum allows, like Excel™, to format numbers according to their sign.SYNTAX------- FormatNum(<number>[,<format string>])PARAMETERS------------- <number> is the number to format. <format string> is a string defining the output format. Its shaped as : <format if positive[;format if negative[;format if null]]> Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- Each format can contain the chars #0^.,'\+-%E(). Filling is always done from the right. Format must provide at least as many chars as digits in the number.ERRORS-------If an error occurs, FormatNum can return : "Error : Missing or empty parameter" "Error : Couldn't access partsTable" "Error : Bad format string"HISTORY--------1.0 17/07/92• First public release</text>
</content>
<name></name>
<script></script>
</card>
card_15241.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpif the version ≥ 2.0then answer file "File to search in :"else ask "PathName of file to search in :"if it is empty then exit mouseUpput it into FileNameask "FOND resource name :"if it is empty then exit mouseUpput it into FontNameif FontName is "FOND"then ask "Current FOND resource ID :"else ask "Current linked resource ID :"if it is empty then exit mouseUpput it into CurrIDask "New resource ID :"if it is empty then exit mouseUpput it into NewIDFontRenum FileName,FontName,CurrID,NewIDif the result ≠ emptythen answer the resultend mouseUp</script>
</part>
<part>
<id>24</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>97</left>
<top>281</top>
<right>266</right>
<bottom>311</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>FontInfos</name>
<script>on mouseUpglobal FondNb,FondResultif the version ≥ 2.0then answer file "File to search in :"else ask "PathName of file to search in :"if it is empty then exit mouseUpset cursor to watchget FontInfos(it)if word 1 of it is "Error"then answer itelseput 1 into FondNbput it into FondResultDisPlayResultshowHide trueend ifend mouseUp</script>
<text> FontMaster stack 1.2 by Frédéric RINALDI This stack contains two externals, FontInfos XFCn & FontRenum XCMD, which allow to handle fonts withing files. FontInfos 1.2 DESCRIPTION------------ FontInfos returns full information on fonts in a file according to the FOND resources.SYNTAX-------- FontInfos(<file name or pathName>[,<item delim>[,<line delim>]])PARAMETERS------------ <file name or pathName> can be a single name or whole pathname of a file or of an alias pointing to it. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <item delim> allows to use an unusual item delimiter. Default is comma. <line delim> allows to use an unusual line delimiter. Default is return. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns a return delimited list of entries, each entry having the following items : 1) name : name of FOND resource 2) ID : ID of FOND resource 3) flag 1 : true is there's an image-height table 4) flag 2 : true is there's an character-width table 5) flag 3 : true when FractEnable should be ignored 6) flag 4 : true to use integer extra width style variation 7) flag 5 : true when family width table should be ignored 8) flag 6 : true for fixed-width font 9) famID : family ID number 10) firstChar : ASCII code of the first char 11) lastChar : ASCII code of the last char 12) ascent : maximum ascent for 1 pt font 13) descent : maximum descent for 1 pt font 14) leading : maximum leading for 1 pt font 15) widMax : maximum width for 1 pt font 16) property 1 : extra width for bold text 17) property 2 : extra width for italic text 18) property 3 : extra width for underline text 19) property 4 : extra width for outline text 20) property 5 : extra width for shadow text 21) property 6 : extra width for condensed text 22) property 7 : extra width for extended text 23) version : version number …) assoc 1[…,assoc N] : font association table for each corresponding NFNT or FONT resource, where each <assoc> is a four items string : "fontSize,fontStyle,resource type,resource ID" fontStyle containing one or more words giving the style(s).ERRORS-------If an error occurs, FontInfos can return : "Error : Not a file" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : I/O Error" "Error : No resource fork" "Error : AppleShare insufficient privileges" "Error : Out of memory" "Error : Missing or empty parameter" "Error : No FOND resource"HISTORY--------1.2 10/10/91• remove dummy SysBeep occuring with System < 6.0.7• added sfnt resource support1.1 10/03/91• added resource type in each entry of font association table FontRenum 1.2 DESCRIPTION------------ FontRenum allows to renumber a FOND resource or associated FONT/NFNT/sfnt resources.SYNTAX-------- FontRenum <file name or pathName>,<FOND name>, <sfnt/NFNT/FONT current id>,<sfnt/NFNT/FONT new id>PARAMETERS------------ <file name or pathName> can be a single name or whole pathname of a file or of an alias pointing to it. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <FOND name> is a string giving the FONF resource name (ie name of the font). Passing "FOND" in this parameter allows to renumber the FOND resource itself rather than linked resources. <sfnt/NFNT/FONT current id> is an integer giving the current resource id. <sfnt/NFNT/FONT new id> is an integer giving the desired new id. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- Renumbering sfnt/NFNT/FONT resources also updates its ID entry in the font association table of the FOND resource.ERRORS-------If an error occurs, FontRenum can return : "Error : Not a file" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : I/O Error" "Error : No resource fork" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Incorrect current ID" "Error : Incorrect new ID" "Error : FOND resource not found" "Error : FONT/NFNT entry not found in FOND resource"HISTORY--------1.2 10/15/91• FamID is changed when FOND resource is renumbered1.1 10/10/91• remove dummy SysBeep occuring with System < 6.0.7• added sfnt resource support</text>
</content>
<content>
<layer>card</layer>
<id>17</id>
<text> 1) name 2) ID 3) flag 1 4) flag 2 5) flag 3 6) flag 4 7) flag 5 8) flag 6 9) famID 10) firstChar 11) lastChar 12) ascent 13) descent 14) leading 15) widMax 16) property 1 17) property 2 18) property 3 19) property 4 20) property 5 21) property 6 22) property 7 23) version font assoc table</text>
<script>on opencardend opencardon closecardshowHide falseend closecardon showHide Howlsrepeat with i=2 to 4if i > 2then set visible of btn i to Howset visible of cd fld i to Howend repeatend showHideon DisplayResultglobal FondNb,FondResultset cursor to watchif FondNb ≤ number of lines of FondResultthenrepeat with i=1 to 23put item i of line FondNb of FondResult into line i ¬of cd fld "Result"end repeatset scroll of cd fld "List" to 0put empty into cd fld "List"repeat with i=24 to number of items of line FondNb of FondResultif (i mod 4 ≠ 0) and i ≠ 24then next repeatput item i to i+3 of line FondNb of FondResult & return¬after cd fld "List"end repeatadd 1 to FondNbend ifend DisplayResult</script>
</card>
card_14781.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpget FolderPath("What folder :")if it Γëá emptythengo this cdset cursor to watchanswer "Folder size is" && FolderSize(it) && "bytes"end ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FolderSize 1.1 by Frédéric RINALDIDESCRIPTION------------ FolderSize XFCN returns the physical size of any folder or volume.SYNTAX-------- FolderSize(<folder pathname>[,<logical size>])PARAMETERS------------ <folder pathname> can be a single name or whole pathname. If just a single name is supplied, the folder is assumed to be in the same folder than the current stack. <logical size> is a boolean for choosing between logical and physical size. Default is logical size (TRUE). Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the physical size in bytes of the folder or volume. This value can be different from the folder size given by the Finder Info, since the Finder adds the logical size of each enclosed file. The physical size is more accurate, since you can use it to know how much space you really need to copy that folder.If an error occurs, FolderSize can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Couln't open working directory" "Error : Couln't close working directory" "Error : Missing or empty parameter" "Error : Second param must be boolean"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added <logical size> param• Added "=" param for online help This stack uses FolderPath XFCN, © 1898, 1990 Apple Computer, Inc.</text>
<script>on mouseUpput "A,C,D,E,P,M,N,T,I,S,Y" into ParamListrepeat with i=1 to number of items of ParamListput quote & item i of ParamList & quote & " : " &¬FindFolder(item i of ParamList) & return after Tempend repeatput Temp into cd fld 2show cd fld 2end mouseUp</script>
</part>
<part>
<id>26</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>56</left>
<top>88</top>
<right>440</right>
<bottom>231</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script>on mouseUphide meend mouseUP</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FindFolder 1.0 by Frédéric RINALDIDESCRIPTION------------ FindFolder returns the full pathname of the active System folder or any of its reserved folders (System 7.0).SYNTAX------- FindFolder([<folder descriptor>[,<create it>]])PARAMETERS------------ <folder descriptor> is a string describing the folder. It must be one of these values (only first char is checked) : A[pple menu] C[ontrol Panel] D[esktop] E[xtensions] P[references] M[onitor printing] N[etwork trash] T[rash] I[tems startup] S[ystem] Y : TemporarY items Default value is "S". <create it> is a boolean telling if the XFCN must create the folder if not found (only with System 7.0). Default is FALSE. Both parameters are optional. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the full pathname of the requested folder, ending with colon. Under System 6.0, only current System folder can be returned.ERRORS-------If an error occurs, the XFCN can return : "Error : Empty parameter" "Error : Second param must be boolean" "Error : Folder not found" "Error : Found file instead of folder"</text>
<script>on mouseUpget FilePath(empty,"Please select file :")if it Γëá emptythenput it into FileNameask "Name of the resource ?" with "NewData"if it Γëá emptythenFileToRes FileName,itif the result Γëá emptythen answer the Resultelse answer "Resource successfully created"end ifend ifend mouseUp</script>
</part>
<part>
<id>8</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>131</left>
<top>9</top>
<right>377</right>
<bottom>273</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>bold</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>11</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>135</left>
<top>13</top>
<right>148</right>
<bottom>26</bottom>
</rect>
<style>rectangle</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script>on mouseUplshide btn 2hide cd fld 2hide cd fld 3end mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>156</left>
<top>18</top>
<right>354</right>
<bottom>262</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>17</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>320</left>
<top>282</top>
<right>444</right>
<bottom>316</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>ResToFile</name>
<script>on mouseUpask "Please name the new file :"if it Γëá emptythenput it into FileNameask "Name of the resource ?" with "TestStack"if it Γëá emptythenput it into DATANameResToFile FileName,DATANameif the result Γëá emptythenif first word of the Result is "Error"then answer the Resultelse put the Result into FileNameend ifif DATAName is "TestStack"then go stack FileNameend ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FileMaker 1.1 by Frédéric RINALDIDESCRIPTION------------ FileMaker is a set of two XCMDs : FileToRes and ResToFile. These two externals allow to create any type of document, empty or already filled, from within a script and reopen it with the original application. FileToRes 1.1 ------------SYNTAX------- FileToRes <file path or name>,<DATA res name>PARAMETERS------------ <file path or name> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <DATA res name> is the name which will take the created DATA resource in the current stack. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING------ The XCMD can generate DATA resource from any kind of file with no resource fork. Along with the datas, the file type, creator and flags are put in the DATA resource in order for ResToFile XCMD to regenerate exactly the same file than the original. If a DATA resource already exists with the same name, a dialog will be prompted for the user to choose to rename, replace or cancel. If rename is choosen, a second dialog will ask for the new name, and the Result will return the changed name. With replace, the previous resource will be overwritten. If you plan to capture a stack, compact it before in order to get the smallest resource as possible. If an error occurs, the Result can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Creation aborted" "Error : Old DATA res could't be removed" "Error : Couldn't clear DATA resource" "Error : Creation aborted" "Error : This file has a resource fork" "Error : Out of memory" "Error : Couldn't build resource" "Error : Couldn't create DATA resource"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help ResToFile 1.1 ------------SYNTAX------- ResToFile <name or pathName>,<DATA res name>PARAMETERS------------ <file path or name> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <DATA res name>is the name of the DATA resource which will be used to re-create the original file. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).USING------ The XCMD uses DATA resource previously created by FileToRes XCMD to rebuild the whole file. Since file type, creator and flags were preserved, the rebuilt file is exactly the same than the original. If a file already exists with the same name, a dialog will be prompted for the user to choose to rename, replace or cancel. If rename is choosen, a second dialog will ask for the new name, and the Result will return the changed name. With replace, the previous file will be overwritten. If an error occurs, the Result can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : DATA res "name" not found" "Error : No more disk space" "Error : Creation aborted" "Error : Creation aborted" To test these XCMDs, just click on buttons below. A DATA resource named "TestStack" is already in the stack for testing purpose. It will create a stack template with two cards, script and objects.HISTORY----------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online helpThis stack uses FilePath XFCN, © 1898, 1990 Apple Computer, Inc.</text>
</content>
<content>
<layer>card</layer>
<id>8</id>
<text></text>
</content>
<content>
<layer>card</layer>
<id>16</id>
<text>This XFCN is FreeWare,allowing unlimitted use in any non-commercial stack. You just need in this case to mention the author's name in the stack.Any commercial use must be licenced and aknowledged by the author.</text>
</content>
<name>FileMaker 1.1</name>
<script>on opencardend opencardon closeCardlshide btn 2hide cd fld 2hide cd fld 3end closeCard</script>
</card>
card_13256.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpget filepath("","File to test :")if it Γëá emptythen answer FileIsOpen(it)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FileIsOpen 1.1 by Frédéric RINALDIDESCRIPTION------------ FileIsOpen allows to test if a file is already open or not.SYNTAX-------- FileIsOpen <File path>PARAMETERS------------ <File path> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN return "true" is the file is open, "false" if not.If an error occurs, FileIsOpen can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help This stack uses FilePath XFCN, © 1898, 1990 Apple Computer, Inc.</text>
<script>on mouseUpget FilePath(empty,"Select File to copy :")if it ≠ emptythenput it into ProvFileput NewFileName("Select destination & name :","New File")¬into DestFileif DestFile ≠ emptythenset cursor to watchput "Copying File..."FileCopy ProvFile,DestFileget the Resultput emptyif it ≠ emptythen answer itend ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> FileCopy 2.0 © Frédéric RINALDIDESCRIPTION------------ FileCopy is a XCMD allowing to copy any file between two volumes or directories.SYNTAX------- FileCopy <file path, name or pathname> [,<dest path or name>] [,<replace>][,"DontResolveAlias"]PARAMETERS------------ <file path, name or pathname> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <dest path or name> is optional. If not supplied, the file will be copied in the same folder as "Copy of...". If a single name is passed, the copy of the file will take that new name in the same folder. If the second param end with colon, the file will be copied in the designed folder and will keep its original name. Finally, a whole pathname can be provided to define both dest. directory and new file name. <replace> is a boolean allowing to automatically replace any existing file. Default is FALSE. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- If the copy is successfull, the Result will contain the full pathname of the destination file. If an error occurs, the Result can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Volume is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : No more disk space" "Error : Missing or empty parameter(s)" "Error : Couln't create copy buffer"HISTORY-------2.0 : 06/19/92• Enhanced to allow copy in an AppleShare drop-folder1.9 : 03/13/92• Removed forgotten DebugStr (grin !)1.8 : 03/07/92• Enhanced destination param parser1.7 : 12/25/91• Fixed alias file bug under System 7.0.11.6 : 11/22/91• Fixed destination volume freespace calculation1.5 : 10/29/91• Copied file now preserves modification date.1.4 : 10/28/91• Copied file now preserves creation date.1.3 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "DontResolveAlias" parameter• Added "=" param for online help1.2 : • Keeps previous file attributes (dates)1.1 : • Replace param added to provide automatic replacement of previous file with a same name.This stack uses FilePath XFCN (© 1898, 1990 Apple Computer, Inc) and NewFileName XFCN (© Andrew GILMARTIN).</text>
</content>
<name></name>
<script></script>
</card>
card_12229.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUprepeat with i=2 to 4show cd fld iend repeatask "Item(s) to extract : (x[…,y])" with "2,4"if it ≠ emptythendo "get ExtractItems(cd fld 3," & it & ")"if first word of it is "Error"thenbeepanswer itelse put it into cd fld 4end ifend mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>85</left>
<top>53</top>
<right>434</right>
<bottom>277</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUpHideAllend mouseUp</script>
</part>
<part>
<id>17</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>102</left>
<top>79</top>
<right>252</right>
<bottom>264</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>18</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>265</left>
<top>79</top>
<right>415</right>
<bottom>264</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ExtractItems 1.4 by Frédéric RINALDIDESCRIPTION------------ ExtractItems XFCN extracts one or more items from a list.SYNTAX-------- ExtractItems(<text>,<item nb>[…<item nb>][,<item sep>[,<line sep>]])PARAMETERS------------ <Text> is the original list of many lines of one or more items. <Item Nb> is a positive non zero integer giving the item number(s) to extract from the text. <item sep> and <line sep> are both a single char defining respectively the item and line separators. Default is comma fior itemSep (or the current value of the itemDelimitert property under HC 2.1), return for lineSep. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns the extracted list.If an error occurs, ExtractItems can return : "Error : Out of memory" "Error : Missing parameter(s)" "Error : Bad item number #x"HISTORY-------1.4 : 05/17/92• Fixed again itemDelimiter handling1.3 : 04/27/92• Fixed itemDelimiter/HC 2.0v2 bug1.2 : 03/13/92• Added LineSep and ItemSep params</text>
<script>on mouseUpget FilePath(empty,"File to delete :")if it Γëá emptythenEraseFile itget the Resultif it Γëá emptythenbeepanswer itend ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> EraseFile 1.1 © Frédéric RINALDIDESCRIPTION------------ EraseFile is a XCMD allowing to delete a file on a volume.SYNTAX------- EraseFile <file path|name>[,"DontResolveAlias"]PARAMETERS------------ <file path|name> can be a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. "dontResolveAlias" allows to deal with an alias file itself (System 7.0 only) rather than with the file pointed by it. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The Result will be empty if the file has been deleted. If an error occurs, it can contain : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing or empty parameter(s)" "Error : Second param can only be “DontResolveAlias”"HISTORY--------1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "DontResolveAlias" parameter• Added "=" param for online helpThis stack uses FilePath XFCN, © 1898, 1990 Apple Computer, Inc.</text>
<script>on mouseUplsselect last line of cd fld 1doMenu "Copy text"show cd fld 2put "try pasting..."ulsselect after text of cd fld 2end mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>97</left>
<top>98</top>
<right>402</right>
<bottom>222</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> DoMenu 1.0 by Frédéric RINALDIDESCRIPTION------------ DoMenu XCMD enhances HyperCard 2.0 by allowing to choose to paste text only or styled text.SYNTAX-------- doMenu <item name>PARAMETERS------------ Item name is the name of the menu item to call.USING----- Just copy DoMenu XCMD in your Home or start using this stack. All doMenu messages sent thru the hierarchy (by script of pulling down menu) will be trapped by the XCMD, acting as a filter for "Paste Text" item name. So, regular pasting will paste unstyled text in the destination field, while holding simultaneously the shift key down when pasting will paste the styled text. Since most pasting doesn't need style, just install and forget it.</text>
</content>
<name>DoMenu 1.0</name>
<script>on opencardend opencardon closeCardhide cd fld 2put empty into cd fld 2end closeCard</script>
</card>
card_10501.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpget FilePath("APPL", "Application to explore :")if it Γëá emptythenset cursor to watchanswer DocTypes(it)end ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> DocTypes 1.5 by Frédéric RINALDIDESCRIPTION------------ DocTypes XFCN returns a list of all documents types that can be handled by an application.SYNTAX-------- DocTypes(<appl path>)PARAMETERS------------ <appl path> can be a single name or whole pathname. If just a single name is supplied, the application is assumed to be in the same folder than the current stack. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN returns a comma separated list of available types.If an error occurs, DocTypes can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Missing pathname" "Error : Empty pathname" "Error : Could't find FREF resource" "Error : Couldn't build result"HISTORY-------1.5 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online helpThis stack uses FilePath XFCN, © 1898, 1990 Apple Computer, Inc.</text>
<script>on mouseUpask "Creator (4 chars) or full pathName :" with "WILD"if it is empty then exit mouseUpput it into Creatorask "Volume : (Cancel for all)"put it into Volumeanswer "FullPath ?" with "True" or "False"set cursor to watchIF Volume Γëá emptythen put DocCreator(Creator,Volume,it) into cd fld 2else put DocCreator(Creator,it) into cd fld 2show cd fld 2end mouseUp</script>
</part>
<part>
<id>18</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>69</left>
<top>68</top>
<right>434</right>
<bottom>252</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script>on mouseUphide meend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> DocCreator 1.2 by Frédéric RINALDIDESCRIPTION------------ DocCreator returns the application name for a given creator of file pathName.SYNTAX-------- DocCreator(<file creator or pathName>[,<volume name>][,<find all>])PARAMETERS------------ <file creator or pathName> can be a creator (4 chars), a single name or whole pathname. If just a single name is supplied, the file is assumed to be in the same folder than the current stack. <volume name> is the name of volume to be explored. Default is all mounted volumes. <find all> is a boolean allowing to choose to get all or only the latest application. Default is FALSE. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- DocCreator is able to use the System 7.0 enhanced desktop search features if active. The XFCN returns a return delimited list of all matching applications. Duplicates are removed from the list before returning.If an error occurs, DocCreator can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Out of memory" "Error : Missing parameter"HISTORY--------1.2 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help</text>
</content>
<name>DocCreator 1.2</name>
<script>on opencardend opencardon closeCardhide cd fld 2put empty into cd fld 2end closeCard</script>
</card>
card_9593.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpask "Date/time to convert :" with the date & "," & the timeif it is empty then exit mouseUpanswer it & " -> " & DateConverter(it)get the timeconvert it to secondsask "Seconds to convert :" with itif it is empty then exit mouseUpanswer it & " -> " & DateConverter(it)end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> DateConverter 1.0 by Frédéric RINALDIDESCRIPTION------------ DateConverter allows to convert date/time to seconds and backwards.SYNTAX-------- DateConverter(<date[,time[ AM|PM]]> | <seconds>)PARAMETERS------------ <date[,time[ AM|PM]]> is the date/time string. Since the XFCN is fully international, items order can differ in the date format. (ex for U.S.A. : "month/day/year"). Year can be 2 or 4 chars long. Time is optional, and can be input in 12 ou 24 hours format, regardless of the country (ex : HH:MM:SS). Minutes and seconds are also optional. Date and time must be separated by a colon in the string, leading zeros are not required. <seconds> is an integer, which corresponds the the number of seconds since January 1. 1904. Using "!", "?" and "=" as parameter will return an online help (resp. copyright, syntax and output).USING----- Depending on the passed param (date/time or seconds), the XFCN will return the converted string (resp. seconds elapsed since January 1. 1904 and date/time string). The date/time output string will be formatted according to international setttings.ERRORS-------If an error occurs, DateConverter can return : "Error : Incorrect date format" "Error : Incorrect time format" "Error : Couln't get INTL resource" "Error : Cannot handle date before 1/1/1904" "Error : Missing or empty parameter"</text>
<script>on mouseUpask "Stack name :"if it Γëá emptythenput it into SNamecreateStack SNameget the Resultif first word of it = "Error"then answer itelseif it is emptythen go stack SNameelse go stack itend ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> CreateStack 1.1 by Frédéric RINALDIDESCRIPTION CreateStack is a XCMD that allows to create a new Stack from within a script, without user intervention.SYNTAX CreateStack <name or pathName>PARAMETERS If you supply only a name, the stack will be created at HyperCard's hierarchical level on the disk. Help online is available : if you pass as first parameter : "!" : the Result returns the version info "?": the Result returns the syntaxUSING If no error occured, the Result will be empty. Otherwise, it can contain :"Error : Bad Parameter Number""Error : Resource STDT not found""Error : Bad File Name""Error : Path Not Found""Error : Volume Not Found""Error : Creation aborted""Error : Create Failed""Error : FSDelete failed""Error : FSOpen failed""Error : FSWrite failed""Error : FSClose failed" If a file with the same name already exists, the XCMD will ask if you want to replace it, or rename the stack to be created. If you choose to rename it, the the Result will return the created stack name. This XCMD needs an auxillary resource STDT named "CreateStack". You can renumber it, but avoid renaming it !</text>
<script>on mouseUpask "Folder path or name :"if it Γëá emptythenCreateFolder itif the Result Γëá emptythen answer the Resultend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> CreateFolder 1.2 by Frédéric RINALDIDESCRIPTION------------ CreateFolder is a XCMD allowing to create a new folder on a volume.SYNTAX------- CreateFolder <folder path>PARAMETERS------------ <folder path> can be a single name or whole pathname. If just a single name is supplied, the folder will be created in the same folder than the current stack. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- If the creation is successfull, the Result will be empty. If an error occurs, the Result can return : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Folder is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : Moving whole volume not allowed" "Error : Not an AppleShare volume" "Error : AppleShare insufficient privileges" "Error : Not a directory" "Error : Missing or empty parameter"HISTORY--------1.2 : 06/18/91• Fixed a minor and rare bug1.1 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help</text>
</content>
<name></name>
<script></script>
</card>
card_17032.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpget FilePath("STAK","Prov stack :")if it is empty then exit mouseUpput it into ProvFileget FilePath("STAK","Dest stack :")if it is empty then exit mouseUpput it into DestFileask "Resource type :" with "XCMD"if it is empty then exit mouseUpput it into ResTypeask "Resource name or ID :" with "CopyRes"if it is empty then exit mouseUpput it into ResNameanswer "Optionnal parameter :" with "R" or "I" or "None"if it is "None"then CopyRes ProvFile,DestFile,ResType,ResNameelse CopyRes ProvFile,DestFile,ResType,ResName,itget the Resultif first word of it is "Error"thenbeepanswer itelse answer "Copy done, result = ΓÇ£" & it & "ΓÇ¥"end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> CopyRes 1.8 XCMD by Frédéric RINALDIDESCRIPTION------------ CopyRes is a XCMD allowing to copy resources between two files. Unlike ResCopy, it doesn't simply replace existing resources with same name or ID without warning, and offers a wide range of error checking.SYNTAX------- CopyRes <prov file>,<dest file>,<res type>,<res name or ID>[,<I | R | K>]PARAMETERS------------ Prov and dest file can be name or full pathname. With a single name, the file is assumed to be in the same folder than the current stack. Using "*" for any of these parameters will refer to the current stack pathname. Res type must be a four char string, and is case sensitive. The resource to copy can be invoked by its name or its ID. Last parameter is optionnal, and can be any string beginning with "I", "R" or "K". Its allows to automatically renumber the copied resource, either Incremental or Random. Incremental will set an ID equal to the highest ID of the type plus one. Random will set any ID no already existing and over 1000. Using "K" (Krunch) will not ask what to do with existing resource having same name or ID and simply replace it. Using "!" and "?" parameter will return an online help (resp. copyright and syntax).USING----- In case of name or ID conflict, the XCMD will bring an ask dialog allowing to rename or renumber the resource to copy. Renumbering dialog proposes another non-existing ID. Clicking Cancel will abort the copy. If the same name or ID is kept, then a second answer dialog pops to get confirmation for replacing the previous resource. Clicking Yes replaces the resource, No returns to first dialog and Cancel aborts the copy. If the copy succeeds, The Result will return a two items string containing the name and ID of the copied resource.If any error occurs, or the copy is aborted, the Result can return : "Error : Missing Parameter(s)" "Error : Param 5 must begin with R,I or K" "Error : Bad Resource Type" "Error : Same dest and prov file" "Error : Volume Not Found" "Error : File Not Found" "Error : Path Not Found" "Error : Unknown #xx" "Error : Resource not found" "Error : Copy failed" "Error : Copy aborted"HISTORY--------1.8 :• Added "K" param1.7 :• Changed DetachResource to HandtoHand to avoid errors with HC 2.0.1.6 :• code cleanedACKNOWLEDGEMENT------------------This stack uses FilePath XFCN, © 1898, 1990 Apple Computer, Inc.</text>
<script>on mouseUpget selectDir("Select Folder to copy :")if it Γëá emptythenput it into ProvFolderput NameNewFile("New Folder","Select destination & name :") into DestPathgo this cardif DestPath Γëá emptythenAnswer "Copy files ?" with "No" or "Yes"put (it is "Yes") into Filesset cursor to watchput "Copying folder..."CopyFolder ProvFolder,DestPathget the Resultput emptyif it Γëá emptythen answer itend ifend ifend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> CopyFolder 1.9 by Frédéric RINALDIDESCRIPTION------------ CopyFolder is a XCMD allowing to copy a whole folder, including all enclosed folders and files.SYNTAX------- CopyFolder <folder path, name or pathname>[,<dest path or name>] [,<files>][,"ResolveAlias"]PARAMETERS------------ <folder path, name or pathname> can be a single name or whole pathname. If just a single name is supplied, the folder is assumed to be in the same folder than the current stack. <dest path or name> is optional. If not supplied, the file will be copied in the same folder as "Copy of...". If a single name is passed, the copy of the folder will take that new name in the same folder. If the second param end with colon, the folder will be copied in the designed folder and will keep its original name. Finally, a whole pathname can be provided to define both dest. directory and new folder name. <files> is a boolean, making the XCMD copy or not the included files. With false, only the folder structure will be copied. Default is true. "ResolveAlias" will be used when you want any alias file contained in the folder to be resolved before copying. In this case, the pointed files will be copied rather than their alias. Default is non-resolving aliases. Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- If the copy is successfull, the Result will be empty. If an error occurs, either the copy will be aborted (fatal error), or may continue (non-fatal error on a file). The Result will then return one line for each found error, each line containing two items : <error description>,<file pathname>. Error description can be one of these : "Error : Not a file" "Error : Not a folder" "Error : Alias file not supported" "Error : Volume not found" "Error : Bad Name" "Error : File not found" "Error : Folder not found" "Error : File is busy" "Error : I/O Error" "Error : Volume is full" "Error : Volume is locked" "Error : No resource fork" "Error : Duplicate file/folder name" "Error : MacOS param error" "Error : AppleShare insufficient privileges" "Error : No more disk space" "Error : Missing parameter(s)" "Error : Couln't create copy buffer"HISTORY--------1.9 : 03/18/92• Handling of non-fatal errors• Added "ResolveAlias" param• FinderLock attribute is preserved1.8 : 03/13/92• Fixed folder privileges bug1.7 : 12/25/91• Fixed alias file bug under System 7.0.1• Copy now keeps owner and group of shared folders1.6 : 11/22/91• Fixed destination volume freespace calculation1.5 : 10/29/91• Modification/creation dates of files/folders are now preserved1.4 : 08/04/91• Added support for System 7.0 alias files• General enhancement of the code• Added "=" param for online help• Added "=" param for online help1.3 : • Fixed "directory not found" bug with AppleShare server.1.2 :• AppleShare folder privileges are now preserved by the copy• Added files param1.1 :• File attributes are now preserved by the copyThis stack also uses NameNewFile, SelectDir XFCNs, © Frederic RINALDI 1992.</text>
</content>
<name></name>
<script></script>
</card>
card_6939.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> ClipInfo 1.0 by Frédéric RINALDIDESCRIPTION------------ ClipInfo XFCN returns the types of resources present in the clipboard, thus allows to determine its content..SYNTAX-------- ClipInfo ()PARAMETERS------------ No parameter required, but using "!" and "?" returns online help (resp. about and syntax).USING----- If an error occurs, the XFCN can return : "Error : Couldn't load scrap" "Error : Out of memory"</text>
<script>on mouseUpput Switch(CurrPrinter()) into cd fld 2show cd fld 2end mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>104</left>
<top>95</top>
<right>397</right>
<bottom>230</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide meend mouseUp</script>
</part>
<part>
<id>17</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>239</left>
<top>283</top>
<right>341</right>
<bottom>316</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>DeviceList</name>
<script>on mouseUpask "Driver name :" with "LaserWriter"if it Γëá emptythenset cursor to watchget DeviceList(it)if first word of it is "Error"thenanswer itelseput Switch(it) into cd fld 2show cd fld 2end ifend ifend mouseUp</script>
</part>
<part>
<id>18</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>376</left>
<top>283</top>
<right>478</right>
<bottom>316</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>ChoosePrinter</name>
<script>on mouseUpask "Printer driver name :" with "LaserWriter"if it is empty then exit mouseUpput it into Driverset cursor to watchask "Device name :" with first item of DeviceList(Driver)if it is empty then exit mouseUpput it into Deviceset cursor to watchChoosePrinter Driver,Deviceget the Resultif it Γëá emptythen answer itelse answer "Current device :" && item 2 of CurrPrinter()end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> Chooser 1.3 by Frédéric RINALDIDESCRIPTION------------ This stack contains 2 XFCN and 1 XCMD which allow to act like with the chooser, thus select any printing driver. IMPORTANT This kind of stuff is strictly forbidden by the Human Interface Guidelines, which tell to always let the user choose its printer with the Chooser DA and never do it inside a program. However, regarding the high demand for such a feature, I offer you the opportunity to do it within a script. So, to preserve the interface, never forget to restore the previous setting after using these externals. (see the script of this stack). CurrPrinter 1.3DESCRIPTION------------ CurrPrinter is a XFCN which returns infos on the current printing device.SYNTAX-------- CurrPrinter ()PARAMETERS------------ No parameter required, but using "!", "?" or "=" as first parameter returns online help (resp. about, syntax and output).USING----- The XFCN returns a one, two or three items string : • One item is returned if the printer is not shareable (like ImageWriter), being the printer driver name of the System Folder. • Two items are returned if the printer is shareable (like LaserWriter) and is on the current zone. They are respectively the printer driver name and the printer name. • Three items are returned if the printer is shareable (like LaserWriter) and is not on the current zone. They are respectively the printer driver name, the printer name and the zone name.If an error occurs, the XFCN can return : "Error : Couldn't locate System folder" "Error : Couln't get printer info" "Error : Printer driver file is missing" DeviceList 1.3DESCRIPTION------------ DeviceList is a XFCN which returns a list of available devices in a zone over the AppleTalk network. It can be used for any kind of devices, not only printers.SYNTAX-------- DeviceList(<driver name>[,<zone name>])PARAMETERS------------ <driver name> is the name of the driver file in the System Folder (or Extensions folder for System 7.0).CAUTION : this has changed from last version which was expecting the device name. You now just have to supply the driver file name, and don't need anymore to know AppleTalk node name to use it. <zone name> is the zone string. If missing, the device is assumed to be on the current zone. Using "!", "?" or "=" as first parameter returns online help (resp. about, syntax and output).USING----- The XFCN returns a list of items corresponding to the devices found on the network.If an error occurs, the XFCN can return : "Error : Out of Memory" "Error : Couldn't locate System folder" "Error : Missing or empty driver name" "Error : Driver file not found" "Error : Couln't get node name" "Error : Couldn't open AppleTalk" "Error : Out of memory" "Error : Register failed" "Error : Lookup failed" "Error : Extract failed" ChoosePrinter 1.3DESCRIPTION------------ ChoosePrinter is a XCMD allowing to select any printer, shareable or not on any zone.SYNTAX-------- ChoosePrinter <printer driver name>[,<printer name>[,<zone name>]]PARAMETERS------------ The three parameters are strings, the two last being optional. <printer driver name> is the name of the printer driver file in the System Folder (or Extensions folder for System 7.0). <printer name> must be supplied for shareable printers. <zone name> is the zone string. If missing, the device is assumed to be on the current zone. Using "!", "?" or "=" as first parameter returns online help (resp. about, syntax and output).USING----- If an error occurs, the Result can contain : "Error : Printer driver file not found" "Error : Not a printer driver" "Error : Couldn't locate System folder" "Error : Missing or empty printer driver name" "Error : Printer driver file not found" "Error : Not a shared printer" "Error : Couln't get node name" "Error : Couln't get printer driver info" "Error : Couldn't set "alis" resource"FINAL NOTE---------- If you need to get the list of all available printer drivers available in the System Folder, you can use one of my other external GetDir in this way : put GetDir(FindFolder("Extensions"),"f","t=PRER") into List or put GetDir(FindFolder("Extensions"),"f","t=PREC") into List You can also get the name of all available AppleTalk zones by using another XFCN I wrote : ATalkZones.HISTORY--------1.3 08/20/91• The three externals now are System 7.0 compatible• Changed DeviceList to accept driver name rather that ATalk device name• ChoosePrinter now checks to correct type of the driver (PRES or PREC)• Two externals have been renamed to be more accurate : ChooseDevice -> ChoosePrinter CurrDevice -> CurrPrinter• General cleaning of the codes This stack uses Switch XFCN, © Frederic RINALDI 1989,1990,1991.</text>
</content>
<content>
<layer>card</layer>
<id>16</id>
<text>Error : Missing or empty driver name</text>
</content>
<name>Chooser 1.3</name>
<script>on opencardglobal SavedPrinter-- store the current device in a global varput CurrPrinter() into SavedPrinterrepeat with i=1 to number of items of SavedPrinterput quote before item i of SavedPrinterput quote after item i of SavedPrinterend repeatend opencardon closeCardglobal SavedPrinter-- restore the original device from the global vardo "ChoosePrinter" && SavedPrinterend closeCard</script>
</card>
card_6005.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text> ChooseColor 1.1 © Frédéric RINALDIDESCRIPTION------------ ChooseColor allows to choose a color using the Apple Color Picker dialog.SYNTAX------- ChooseColor([<prompt>[,<initial color>]])PARAMETERS------------ All parameters are optional. Prompt is a string that will be prompted in the Color Picker dialog. Default value is "Please select a color :". Initial color is a three integer items string corresponding to red, green and blue values of the color that will be shown at the dialog's opening. Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING------ The XFCN retuns a three integer items string corresponding to red, green and blue values of the choosen color. If cancelled, the returned string is empty. If an error occurs, the XFCN can return : "Error : Bad red value" "Error : Bad green value" "Error : Bad blue value"HISTORY--------1.1• Use notification manager for HC 2.0</text>
<text> CapsLock 1.0 by Frédéric RINALDIDESCRIPTION------------ CapsLock XFCN allows to test if the CapsLock key is down or not.SYNTAX-------- CapsLock()PARAMETERS------------ Using "!" and "?" as parameter will return an online help (resp. copyright and syntax).USING----- The XFCN returns true if the CapsLock is down, false if not.</text>
<text><span class="style1"> </span><span class="style3">Calendoid 1.3</span><span class="style1"> </span><span class="style2">by Frédéric RINALDI</span><span class="style1"></span><span class="style4">DESCRIPTION</span><span class="style1"> Calendoid XCMD displays a monthly calendar window.</span><span class="style4">SYNTAX</span><span class="style1"> Calendoid [<date>]</span><span class="style4">PARAMETERS</span><span class="style1"> <date> is optional, and is a date string corresponding to the month to be displayed in the window. Any usual date format can be used. Using "!", "?" and "=" as first parameter will return an online help (resp. copyright, syntax and output).</span><span class="style4">USING</span><span class="style1"> Clicking on left and right arrows allows to display previous or next month. Holding Optionkey down allows to jump from year to year. Clicking on a day of month displays the week and day numbers at the bottom of the window. Clicking on the month's name brings back to current month. Macintosh's internal clock can only handle dates between 1/1/1904 and 2/6/2040.</span><span class="style4">MESSAGES</span><span class="style1"> </span><span class="style3">OpenCalendoid</span><span class="style1"> : sent when a windoid is opened, followed by the windoid name and ID. This allows to define window properties before it is shown, since the message can be trapped using a handler :</span><span class="style5"> on openCalendoid WName,WId if WName is "MyWindow" then... end openCalendoid</span><span class="style1"> </span><span class="style3">CloseCalendoid</span><span class="style1"> : sent when a windoid is closed, followed by the windoid name and ID. This allows to define window properties before it is shown, since the message can be trapped using a handler :</span><span class="style5"> on closeCalendoid WName,WId if WName is "MyWindow" then... end closeCalendoid</span><span class="style3"></span><span class="style1"> </span><span class="style3">ClickInCalendoid</span><span class="style1"> : </span><span class="style5">s</span><span class="style1">ent when double-clicking on a day in the window, followed by the windoid name and ID, the clicked date in short format, the week and day numbers.</span><span class="style5"> on clickInCalendoid WName,WId,When,WeekNb,DayNb put When end clickInCalendoid</span><span class="style1"></span><span class="style4">PROPERTIES</span><span class="style1"> Like any XWindow, Calendoid has properties that can be get and set thru HyperTalk. </span><span class="style5">properties of window "Calendoid"</span><span class="style1"> will return an item list of all allowed properties : • loc : windoid's position according to card (X,Y) • visible : windoid's visibility (</span><span class="style14">true</span><span class="style1"> or false) • id : windoid's id (</span><span class="style3">get</span><span class="style1"> only) • messages : list of messages sent by the windoid (</span><span class="style3">get</span><span class="style1"> only) • rect : windoid's rect according to card (X,Y,Z,T) (</span><span class="style3">get</span><span class="style1"> only) • date : currently displayed date (M[M]/1/YY)</span><span class="style4">ERRORS</span><span class="style1">If an error occurs, Calendoid can return : "Error : Unable to create XWindow" "Error : XWindows not implemented" "Error : Out of memory" "Error : Incorrect date"</span><span class="style4">HISTORY</span><span class="style1">1.3 06/25/92• Fixed click bug on a non-valid day1.2 06/16/92• Added week and day numbers to display and result.1.1 06/09/92• Limitation to valid dates• Now use mouseUp for clickInCalendoid1.0 06/04/92• First release</span></text>
<script>on mouseUpget AtalkZones()if number of lines of it = 1then answer it with "Too bad !"elseput it into cd fld 2show cd fld 2end ifend mouseUp</script>
</part>
<part>
<id>16</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>104</left>
<top>95</top>
<right>397</right>
<bottom>230</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script>on mouseUphide meend mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> ATalkZones 1.1 by Frédéric RINALDIDESCRIPTION------------ ATalkZones XFCN returns the node's zone and all available zones over AppleTalk.SYNTAX-------- ATalkZones ()PARAMETERS------------ No parameter required, but using "!" and "?" returns online help (resp. about and syntax).USING----- The XFCN returns a lines list of found zones, the first line being the name of the calling node's zone.If an error occurs, the XFCN can return : "Error : Out of Memory" "Error : Couldn't get node address" "Error : Couldn't get current zone" "Error : Couldn't get zones list"VERSION HISTORY----------------1.1 : • Changed output string</text>
<script>on mouseUpif not visible of btn 2thenlsshow btn 2show cd fld 2show cd fld 3show cd fld 4show cd fld 5else do cd fld 5end mouseUp</script>
</part>
<part>
<id>8</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>9</left>
<top>17</top>
<right>506</right>
<bottom>271</bottom>
</rect>
<style>shadow</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>bold</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>9</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>30</left>
<top>28</top>
<right>488</right>
<bottom>116</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>11</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>14</left>
<top>22</top>
<right>27</right>
<bottom>35</bottom>
</rect>
<style>rectangle</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name></name>
<script>on mouseUplshide btn 2hide cd fld 2hide cd fld 3hide cd fld 4hide cd fld 5put empty into cd fld 4end mouseUp</script>
</part>
<part>
<id>14</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>30</left>
<top>130</top>
<right>488</right>
<bottom>218</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name></name>
<script></script>
</part>
<part>
<id>15</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>19</left>
<top>244</top>
<right>494</right>
<bottom>262</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>10</textSize>
<textStyle>plain</textStyle>
<textHeight>13</textHeight>
<name></name>
<script></script>
</part>
<content>
<layer>card</layer>
<id>1</id>
<text> Align 2.6 by Frédéric RINALDI from an original idea of Jean-Luc PASTRECAUTION :======= Parameter format for "delim[,filler]" have changed comparing to previous version. Please update your scripts is special delimiter was used in your call.DESCRIPTION------------ Align is a XFCN allowing to align in columns the content of a field.SYNTAX-------- Align(<text>[,<F1>[…,<Fn>]][,"s=<sep char>"][,"f=<filler char>"]) F = "<col. width>[,<L[eft]|R[ight]|C[enter]|D[ecimal]>[,<separator>]]"PARAMETERS------------ <text> can be any valid HyperTalk container, or a litteral string. [,<F1>[…,<Fn>]] define formats, each format applying to the corresponding column. Up to 14 formats can be defined, the last one being used for all succeeding columns. A format is a three items string : an integer for the column width (>0 and <256), a char (L, R, C or D) for the alignment of the text in the column and a separation string of any length which will be inserted after the column. If the char "*" is used for the column width, it will be calculated accor-ding to the longest item found in it. If no format is passed as param, "*,L, " will be used as default. "s=<sep char>" is an optionnal single character, and allows to use any other char in place of comma to delimit the columns. "f=<filler char>" is an optionnal single character, and allows to define the filler character (space by default). Using "!", "?" or "=" as first parameter will return an online help (resp. copyright, syntax and output).USING----- The XFCN return the columnized text. If a chunk is longer than its column width, its last (or first, with right alignment) char will be "…". Each column's width cannot exceed 255 chars. Finally, use a non-proportional font (Courier, Monaco, etc.) for the field to get a correct presentation. If an error occurs, the fonction will return : "Error : Out of memory" "Error : Missing parameter" "Error : Param must be "s=…" or "f=…"" "Error : Missing char following "X="" "Error : First item of Format X must be an integer > 0" "Error : First item of Format X must be an integer ≤ 255" "Error : Second item of Format X must be [l,r,c,d]"VERSIONS HISTORY-----------------2.6 : 06/09/92• Fixed bug when no format param is passed• Fixed bug with decimal format and non-decimal data2.5 : 03/17/92• Fixed decimal alignment• Trailing returns removed from input List2.4 : 03/15/92• Fixed that rare, random & nasty bug• Unlimited columns number• Added decimal alignment• Changed delim & filler params format• Only first param is now needed• Each line is extended to the last column.2.2 :• Max columns extended to 100 with range checking2.1 :• Last column delimiter removed.2.0 :• Fixed a small bug arising with certain delimiter chars.• Added the automatic column width calculation.1.1 :• third items of a format string can now be empty• no more separator string returned after last column• all separator strings are shown, even for empty lines• filler char choice added• all separator strings shown, whatever is number of items of line• trailing spaces removed at the end of the lines</text>
<script>on mouseUplsget vcf(10)tginfo falsetghelp not itulsif not it then flashindexend mouseUpon flashIndexrepeat 4wait 10svcf 10,(not vcf(10))end repeatrepeat 6wait 10set hilite of btn id 15 to (not (hilite of btn id 15))end repeatend flashindex</script>
<script>on mouseUpput "barn door close fast" into xlscLr1uls xanswer line 1 to 10 of script of stacklstgpix trueuls xend mouseUp</script>
</part>
<part>
<id>15</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>451</left>
<top>5</top>
<right>506</right>
<bottom>55</bottom>
</rect>
<style>opaque</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>27056</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>X-Index</name>
<script>on mouseUplscLr1uls "barn door close very fast"get tCd(1)lstgpix trueif ((it=1) or (it="")) then exit to hypercardgo cd ituls "wipe left very fast"end mouseUp</script>
<text><span class="style1"></span><span class="style3"> X-Archive</span><span class="style1"> is a collection of over 90 XCMDs and XFCNS, with associated resources, written by Frederic Rinaldi. This stack was compiled from the individual files by: Ken Fisher Dept. of Speech Comm. & Theatre State University of New York at Oneonta Oneonta, NY 13820 </span><span class="style3">BITNET</span><span class="style1">: FISHERKJ@SNYONEVA </span><span class="style3">AO</span><span class="style1">: KENF7</span></text>
</content>
<content>
<layer>card</layer>
<id>10</id>
<text><span class="style1">lick on this buttonfor a list of X-resources.</span><span class="style13"></span><span class="style1">To return to this card,hold the option key down.</span></text>